ServletFileUpload类上传文件时的问题 Read failed with APR/native error code

jaffy 2019-12-10 08:18:01
一个WEB应用,上传文件进行处理。前端用的是bootstrap的fileinput方法,后端是JSP+Servlet
很奇怪的问题,在内部传输和大部分外部用户那里传输都没有问题
但在一个外部用户那里,传输某些文件(有些文件就是可以,有些就是不行,和文件大小无关),就会报这个错误。

[ERROR] 2019-12-05 12:59:12.724
org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Read failed with APR/native error code [730,054]

Caused by: java.io.IOException: Read failed with APR/native error code [730,054]

代码如下,
ServletFileUpload upload = new ServletFileUpload(factory);
logger.info("创建了ServletFileUpload对象");
upload.setHeaderEncoding("utf-8");


upload.setFileSizeMax(50 * 1024 * 1024);// 10M
logger.info("设置了最大的SIZE");// Parse the request
List<FileItem> items;


try {
logger.info("开始获取upload中的数据......");
items = upload.parseRequest(request);
logger.info("获取upload数据完毕");
|
...全文
617 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2019-12-10
  • 打赏
  • 举报
回复
确实很老的系统,估计NIO模式也不支持
windows的话 tomcat8 默认就是APR模式,也就是tomcat本身的jar包本身支持,但windows2003系统底层库可能不支持,你可以上tomcat官网查查看,要用APR模式windows需要打什么补丁
jaffy 2019-12-10
  • 打赏
  • 举报
回复
tomcat版本是8.0.36
jaffy 2019-12-10
  • 打赏
  • 举报
回复 1
Server.xml改成 如下没有生效。不知道是什么问题
操作系统是Win2003 很老的系统了,上面很多其他服务,也无法升级。

<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"

  • 举报
回复
@jaffy 问下您最后怎么解决的
qybao 2019-12-10
  • 打赏
  • 举报
回复
看着像IO模式的问题,昨天刚好回答一个类似的问题
你现在的tomcat是以APR的模式运行的(需要操作系统支持),你改成NIO模式试试
可以参考以下帖子
https://bbs.csdn.net/topics/395290923

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧