使用angular上传文件:The current request is not a multipart request

发布于 2022-09-11 22:38:52 字数 1470 浏览 10 评论 0

今天用angular做文件上传的时候遇到了这个问题,网上的解决方案无非两种

  1. post请求
  2. Content-Type:multipart/form-data

然而我的问题还是没有解决,查看请求很明显,Content-Type没问题,FormData也没问题。
图片说明

查看angular请求方式为POST也没问题

this.uploadFile = function () {
    var formData = new FormData();
    formData.append("file", file.files[0]); //文件上传框的name
    return $http({
        method: "post",
        url: "/upload.do",
        data: formData,
        headers: {"Content-Type": undefined},
        transformRequest: angular.identity
    })
}

再看一下Controller的代码

@RequestMapping("/upload")
public ReturnResult upload(MultipartFile file){
    String fullName = file.getOriginalFilename();   //获取文件名
    String extName = fullName.substring(fullName.lastIndexOf(".") + 1); //得到拓展名
    try {
        FastDFSClient client = new FastDFSClient("classpath:config/fdfs_client.conf");
        String fileId = client.uploadFile(file.getBytes(), extName);
        String url = file_server_url + fileId;  //图片的完整地址
        return new ReturnResult(true, url);
    } catch (Exception e) {
        e.printStackTrace();
        return new ReturnResult(false, "上传失败");
    }
}

看起来所有代码都没问题,但还是报了这个错误
Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: The current request is not a multipart request
参数类型不匹配,有没有大佬告诉我哪个环节出了问题,万分感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稚然 2022-09-18 22:38:52
this.uploadFile = function () {
    var formData = new FormData();
    formData.append("file", file.files[0]); //文件上传框的name
    return $http({
        method: "post",
        url: "/upload.do",
        data: formData,
        headers: {"Content-Type": "multipart/form-data"},
        transformRequest: angular.identity
    })
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文