fastDFS文件上传

配置文件
1.在springmvc配置多媒体解析器,配置指定图片服务器地址<context:property-placeholder location=“classpath:config/application.properties” />
2.application.properties内容:FILE_SERVER_URL=http://192.168.25.153/
3.拷贝客户端配置文件,修改图片服务器地址端口fdfs_client.conf,用于UploadController创建客户端的参数

angularJS的service层

app.service("uploadService",function ($http) {
    this.uploadFile = function () {

        //模拟表单提交数据
        var formData = new FormData;

        //追加参数:文件上传框的name,如果只有一个那就是0号索引
        formData.append("file",file.files[0]);

        return $http({
            method:'POST',
            url:'../upload.do',
            data:formData,

            //angularjs请求头设置undefined,浏览器会自动设置Content-Type设置为multipart/form-data.
            headers:{'Content-Type':undefined},

            //anjularjs transformRequest function 将序列化我们的 formdata object.
            transformRequest:angular.identity
        });

    }
})

后台控制器

@RestController
public class UploadController {

    //图片服务器fastDFS地址
    @Value("${FILE_SERVER_URL}")
    private String file_server_url;

    @RequestMapping("/upload")
    public Result upload(MultipartFile file) {
        //获取文件名
        String originalFilename = file.getOriginalFilename();
        //从点最后一次出现的位置+1就是扩展名开始的位置,截取,得到扩展名
        String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);

        try {

            //创建拍一个fastdfs客户端
            FastDFSClient client = new FastDFSClient("E:\\IDEAPROGECTS\\PYG\\pinyougou-parent\\pinyougou-shop-web\\src\\main\\resources\\config\\fdfs_client.conf");

            //上传文件,获取文件名
            String fileId = client.uploadFile(file.getBytes(), extName);
            String url = file_server_url + fileId;

            //封装到响应消息
            return new Result(true, url);

        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, "文件上传失败");
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值