开发者社区 问答 正文

求助,DWZ的上传问题,怎么老是报错呀!:报错

org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8 at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:947) at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310) at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115) at com.dxcm.controller.ActivesController.edit(ActivesController.java:148) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:55) at com.dxcm.interceptor.LoginCheckInterceptor.intercept(LoginCheckInterceptor.java:12) at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51) at com.dxcm.interceptor.CheckTokenInterceptor.intercept(CheckTokenInterceptor.java:11) at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51) at com.dxcm.interceptor.GlobalInterceptor.intercept(GlobalInterceptor.java:21) at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51) at com.jfinal.ext.interceptor.SessionInViewInterceptor.intercept(SessionInViewInterceptor.java:44) at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51) at com.jfinal.core.ActionHandler.handle(ActionHandler.java:73) at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)

展开
收起
kun坤 2020-06-14 14:13:06 442 分享
分享
版权
举报
阿里云 AI 助理回答

这个错误信息表明您在尝试上传文件时,请求的内容类型(Content-Type)不正确。Apache Commons FileUpload库期望的是multipart/form-datamultipart/mixed类型的数据流,但实际接收到的是application/x-www-form-urlencoded; charset=UTF-8

这通常发生在Web应用中,当用户通过表单上传文件时,需要确保表单的enctype属性设置为multipart/form-data。如果您的前端是HTML表单,可以检查表单标签是否如下所示:

<form action="your-upload-url" method="post" enctype="multipart/form-data">
    <!-- Your input fields here -->
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form>

确保enctype属性被设置为了multipart/form-data

如果问题不在前端,而是后端代码处理不当,比如在使用Spring MVC、Struts或其他Java Web框架时,可能需要调整接收文件上传的配置或者方法签名以适应正确的Content-Type。例如,在Spring MVC中,您可能需要一个MultipartFile参数来接收上传的文件,并确保控制器方法正确地标记为处理文件上传。

如果使用的是阿里云的相关服务,比如函数计算(Function Compute)或阿里云服务器ECS上部署的应用,确保网络配置和安全组规则没有阻止文件上传,并且应用运行环境正确安装了所有必要的库支持文件上传功能。此外,对于云上的应用,还需关注是否有特定的请求头限制或API网关的配置问题,这些也可能影响到Content-Type的处理。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等