文件上传组件上传多个文件时无法显示,页面卡死

bug反馈 已结 精帖 2 1352
梦随风飞
梦随风飞 VIP3 2018-07-09 08:07:31
收藏
产品:ani 版本:2.0
img[/userfiles/fly/8525426941bb46b695e05b9bb983b3a2/files/1531094587835.] img[/userfiles/fly/8525426941bb46b695e05b9bb983b3a2/files/1531094613312.] 上传一个文件时能正常显示并下载; 上传多个文件时无法显示文件列表与下载,页面卡死只能重新加载才能使用页面, 报错如下: 七月 09, 2018 8:02:26 上午 org.apache.coyote.http11.AbstractHttp11Processor process 信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.InternalAprInputBuffer.parseRequestLine(InternalAprInputBuffer.java:238) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2555) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2544) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)
回帖
  • 2018-07-09 19:38:23
    已解决了,是多个文件中的“|”的问题,在传值中导致编码的问题吧,改了 field: 'pic', title: '图片路径', sortable: true, sortName: 'pic', formatter:function(value, row , index){ var valueArray = value.split("|");将split("|")改成其他用的很少的字符,我改成了split("song") 修改fileUpload.jsp中三个地方 var fileIds = "${fileIds}".split("|")改成其他用的很少的字符split("song"); var urls = "${fileValues}".split("|")改成其他用的很少的字符split("song"); function getUploadFileValues() { var list = $("#jeeplus_file_list .list-item .download-this"); var files = []; for(var i=0; i < list.length; i++){ files.push($(list[i]).attr("data-url")); } return files.split("|")改成其他用的很少的字符join("song"); } 经测试已解决
    0 回复
  • 2018-07-10 08:54:51   最后修改:2018-07-10 09:21:08
    多谢反馈。 这个问题只会在部分tomcat下再现。 原因是 ,tomcat对编码要求,有的版本低,有的版本高,不一致。 合理的解决方式是采用encodeURIComponent对特殊字符进行编码,这是我的疏忽,将在2.1版本进行修复。
    0 回复