我也遇到了这样的问题,我察看了SmartUpload的源文件,最后找到了解决的办法
问题出现的情况:我使用javasrcipt定了一个函数
function clicksubmit() {
document.forms[0].submit();
}又在form里面定义一个按钮
<INPUT TYPE="button" NAME="button" VALUE="上传文件" CLASS="button" ONCLICK="return clicksubmit();" >
最开始,按钮的类型是 submit 上传文件的时候,就出现了和你相似的问题。
于是我就改写了 按钮的类型为 button就好了。
原因:
是因为如果使用javascript函数提交一个submit类型的表单,客户端提交两次请求,有一次请求是空请求,而SmartUpload没有处理这个空请求的机制,导致了SmartUpload分析部分的死循环,解决的办法,1改写SmartUpload 2 把按钮类型设置为button在用javascript提交
祝你好运!
问题出现的情况:我使用javasrcipt定了一个函数
function clicksubmit() {
document.forms[0].submit();
}又在form里面定义一个按钮
<INPUT TYPE="button" NAME="button" VALUE="上传文件" CLASS="button" ONCLICK="return clicksubmit();" >
最开始,按钮的类型是 submit 上传文件的时候,就出现了和你相似的问题。
于是我就改写了 按钮的类型为 button就好了。
原因:
是因为如果使用javascript函数提交一个submit类型的表单,客户端提交两次请求,有一次请求是空请求,而SmartUpload没有处理这个空请求的机制,导致了SmartUpload分析部分的死循环,解决的办法,1改写SmartUpload 2 把按钮类型设置为button在用javascript提交
祝你好运!
解决方案 »
- JSP 表单包含变量问题
- POI修改excel保存后出错!
- 关于应用重新发布后,用户上传的图片被清除的问题!
- 关于用ucweb浏览我做的网页不能定时刷新的问题
- 怎样让perl 和 python在 tomcat下工作?
- 我这个简单的页面跳转怎么有错亚,在线等,会急死!
- servlet连接DB2报错java.lang.ClassNotFoundException: COM.ibm.db2.jdbc.net.DB2Driver
- 字符集转换
- java 将数据填充到excel里,详细内容如下
- 研究 Spring Framework Reference Documentation 4.1.2.RELEASE
- 那有javax的类库
- 为什么一个html文件放到weblogic6.1目录下,通过ie都不能运行
比较顽固
你可以在程序中设置一下buffer的长度,每次读一部分,比如每次读8kb。
好像不是这样,我上传一个不大的记事本,也出现漫长的等待。可能就是它内部机制的缺陷,真实美中不足阿
这是我遇到的问题,你可以反编译jspsmartupload看一下,是不是因为这个问题
try
{
readBytes = m_request.getInputStream().read(m_binArray, totalRead, m_totalBytes - totalRead);
}
catch(Exception e)
{
throw new SmartUploadException("Unable to upload.");
}这是smart的程序片
注意这段代码,如果readBytes为-1的话,这就是一个死循环的程序片,也就是说,如果再上传文件的时候,出现问题,导致了readBytes为-1那么就会出现一个死循环的线程,服务器肯定坚持不住几个这样的死循环。我的修改办法加入如下的语句for(; totalRead < m_totalBytes; totalRead += readBytes)
try
{
readBytes = m_request.getInputStream().read(m_binArray, totalRead, m_totalBytes - totalRead);
if(readBytes==-1)
throw new Exception();
}
catch(Exception e)
{
throw new SmartUploadException("Unable to upload.");
}祝你好运!