Java angularJs上载文件错误:当前请求不是多部分请求

Java angularJs上载文件错误:当前请求不是多部分请求,java,angularjs,spring-mvc,Java,Angularjs,Spring Mvc,我尝试用angularjs上传文件,但有一个问题是“当前请求不是一个多部分请求”,我几乎尝试了谷歌的所有解决方案,但没有解决我的问题,我希望有人能回答我的问题,谢谢 这是我的springMVC配置 这是html 上传 这是角度控制器 $scope.uploadFile = function () { uploadService.uploadFile().success(function (response) { if(response.success){

我尝试用angularjs上传文件,但有一个问题是“当前请求不是一个多部分请求”,我几乎尝试了谷歌的所有解决方案,但没有解决我的问题,我希望有人能回答我的问题,谢谢

这是我的springMVC配置


这是html


上传
这是角度控制器

$scope.uploadFile = function () {
    uploadService.uploadFile().success(function (response) {
        if(response.success){
            $scope.image_entity.url = response.message;
        }else{
            alert(response.message);
        }
    })
}
这是角度服务

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

@RequestMapping(“/upload”)
公共返回结果上载(多部分文件){
字符串fullName=file.getOriginalFilename();
字符串extName=fullName.substring(fullName.lastIndexOf(“.”+1);
试一试{
FastDFSClient=newfastdfsclient(“classpath:config/fdfs_client.conf”);
String fileId=client.uploadFile(file.getBytes(),extName);
字符串url=文件\服务器\ url+文件ID;
返回新的返回结果(true,url);
}捕获(例外e){
e、 printStackTrace();
}
}
我看到谷歌浏览器发送

申请方式:邮寄

请求头

内容类型:多部分/表单数据;边界=----WebKitFormBoundaryrzP8MUha8lcbDzdn

表单数据

------WebKitFormBoundaryrzP8MUha8lcbDzdn

内容配置:表单数据;name=“file”;filename=“1.jpg”

内容类型:图像/jpeg

------WebKitFormBoundaryrzP8MUha8lcbDzdn--


那有问题吗?请帮帮我。

我不确定根本原因。但我也遇到了同样的问题,通过添加下面的代码,它解决了这个问题。尝试在配置中添加以下代码

@Bean
public MultipartResolver multipartResolver() {
    return new CommonsMultipartResolverMine();
}

public static class CommonsMultipartResolverMine extends CommonsMultipartResolver {

    @Override
    public boolean isMultipart(HttpServletRequest request) {
        final String header = request.getHeader("Content-Type");
        if (header == null) {
            return false;
        }
        return header.contains("multipart/form-data");
    }
}

哦,我找到了根本原因。难以置信,这是我的控制器的错。未找到类“FastDFSClient”,因为该类不属于此模块,我使用IDEA并将依赖项添加到项目结构中,但未将其添加到pom中。事实上,我不知道两者之间有什么不同,但如果不添加到pom,它将显示“NoClassDefFoundError”。因此,我将依赖项添加到pom中,然后问题就消失了。
我一直认为这是前端错误,或者我的配置不好,但我从来没有想到它是后端错误,这是多么令人伤心。

在您的控制器中,您应该添加

@RequestMapping("/upload")
public ReturnResult upload(@RequestParam("file") MultipartFile file){
......
}