当前位置: 首页 > 知识库问答 >
问题:

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

栾瑞
2023-03-14

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

这是我的springMVC配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"></property>
    <property name="maxUploadSize" value="5242880"></property>
</bean>
html prettyprint-override"><input type="file" id="file"/>
<button class="btn btn-primary" type="button" ng-click="uploadFile()">上传</button>

这是角控制器

$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")
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();
    }
}

表单数据

-----WebKitFormBoundaryRZP8MUHA8LCBDZDN

内容-处置:表单-数据;name=“文件”;filename=“1.jpg”

共有1个答案

向弘懿
2023-03-14

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

@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");
    }
}
 类似资料:
  • 我试图使一个宁静的控制器上传文件。我看到了这一点,做了这个控制器: 然后我用邮递员发送了一份pdf: 但服务器崩溃,出现以下错误: 我再次找到了这个,并添加了一个文件 不幸的是,它仍然抱怨同样的错误。

  • 问题内容: 我试图使一个宁静的控制器来上传文件。我已经看到 了,并做了这个控制器: and then i used postman to send a pdf: But the server crashes with the error: 我再次找到了这个,并添加了一个bean.xml文件 不幸的是,它仍然抱怨相同的错误。 问题答案: 当您将邮递员用于多部分请求时,请不要 在页眉中指定自定义Con

  • Spring3.1。1.发布 我想上传两个文件的html格式,但我总是得到一个多部分请求异常。我在谷歌上搜索了很多,但没有找到正确的解决方案。 我的控制器: 我的. jsp页面: spring-serverlet.xml

  • 我在使用Angular 9 with Spring Boot来实现一个简单的应用程序时遇到了一个问题,该应用程序可以在相同的请求中从UI上传文件和数据。在我用基本身份验证实现安全性之前,一切都很正常。现在,在我登录并想要上载数据后,出现以下错误: <代码>组织。springframework。网状物多部分。MultipartException:当前请求不是多部分请求 标题设置为内容类型:“mult

  • 我试图写一个通用代码上传文件到任何服务器(多部分职位)。< br >我已经在我的代码和各种stackoverflow解决方案中尝试了不同的头和请求类型,但仍然无法上传任何文件。 我不断收到以下HTML消息作为响应: 400 BAD请求 如何在Android中编写一个通用代码将文件上传到服务器?< br > Android代码:< br > 用于测试文件上传的 PHP 代码:

  • 我目前运行的是spring boot V1.3.0.build-Snapshot和spring V4.2.2.build-Snapshot。 如果我尝试执行多文件上载(通过angular): 我得到了错误: [WARN]org.eclipse.jetty.server.request-java.io.ioException:org.eclipse.jetty.util.multipartInput