我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的。通过使用某些技术手段,比如jquery form.js可以达到异步上传的目的,但最重要的问题在于,它不能够进行多个文件的上传。如果你要上传多个文件,必须一个一个地上传,同时还要在界面上处理当上传完一个文件之后,下一个文件上传框的问题。
现在我们有了一个更多的运行,即使用swfupload进行多文件异步上传。顾名思义,它是一个flash的上传工具,但在界面上的表现形式使它和普通的html元素一样,没有复杂的展现,就一个普通的上传框,即可达到想要目的。
关于swfupload的使用这里自不必多,这里主要介绍的是解决在java web开发过程中经常碰到的验证失败的问题。这是因为flash在上传的时候使用的是和浏览器不同的会话,flash的SWFUpload上传利用socket套接字进行通信,所以导致session和原来上一次的会话不同,导致session丢失。这样就导致服务器在验证时自然被认为是新会话,从而验证不能通过,导致上传不能成功了。
解决问题的方法,就是让flash在上传文件的时候带上同在一个界面的session标识,这通常是修改其中的upload_url来达到我们的目的,修改如下所示:
uploadJson: "${ctx}/file/upload.html;jsessionid=${pageContext.session.id}",
上面这句话,必须放到jsp界面上,因为里面使用到了JavaWeb的语法,当然这可以修改,通过将<%=session.getId()%> 或 ${pageContext.session.id} 放到特殊的js变量中,可以达到隐藏变量的目的。比如如下的代码:
这句要jsp页面中的script脚本中,或是放在servlet的response.getWriter()流中的script脚本中;总之要在swfupload 的js引入之前执行
window<"sessionId">="${pageContext.session.id}";
这句话就可以在引入的js中使用
uploadJson: "${ctx}/file/upload.html;jsessionid="+window<"sessionId">),
经过以上测试发现并未解决上传session丢失问题
editor = K.create("#editor", {
extraFileUploadParams: {
JSESSIONID:window<"sessionId">
}
})
现在我们有了一个更多的运行,即使用swfupload进行多文件异步上传。顾名思义,它是一个flash的上传工具,但在界面上的表现形式使它和普通的html元素一样,没有复杂的展现,就一个普通的上传框,即可达到想要目的。
关于swfupload的使用这里自不必多,这里主要介绍的是解决在java web开发过程中经常碰到的验证失败的问题。这是因为flash在上传的时候使用的是和浏览器不同的会话,flash的SWFUpload上传利用socket套接字进行通信,所以导致session和原来上一次的会话不同,导致session丢失。这样就导致服务器在验证时自然被认为是新会话,从而验证不能通过,导致上传不能成功了。
解决问题的方法,就是让flash在上传文件的时候带上同在一个界面的session标识,这通常是修改其中的upload_url来达到我们的目的,修改如下所示:
uploadJson: "${ctx}/file/upload.html;jsessionid=${pageContext.session.id}",
上面这句话,必须放到jsp界面上,因为里面使用到了JavaWeb的语法,当然这可以修改,通过将<%=session.getId()%> 或 ${pageContext.session.id} 放到特殊的js变量中,可以达到隐藏变量的目的。比如如下的代码:
这句要jsp页面中的script脚本中,或是放在servlet的response.getWriter()流中的script脚本中;总之要在swfupload 的js引入之前执行
window<"sessionId">="${pageContext.session.id}";
这句话就可以在引入的js中使用
uploadJson: "${ctx}/file/upload.html;jsessionid="+window<"sessionId">),
经过以上测试发现并未解决上传session丢失问题
editor = K.create("#editor", {
extraFileUploadParams: {
JSESSIONID:window<"sessionId">
}
})
经过测试通过了验证
转载地址:http://www.html580.com/study/236.html