当前位置: 代码迷 >> Web前端 >> FileReference URLrequest下传文件的有关问题:Session丢失
  详细解决方案

FileReference URLrequest下传文件的有关问题:Session丢失

热度:794   发布时间:2012-08-22 09:50:35.0
FileReference URLrequest上传文件的问题:Session丢失

FileReference使用的URLRequest和Flash所在页面用的不同的Session. 所以即使你已经登录,由于上传的请求用的是不同的Session,服务器无法得知请求已经验证。 Adobe文档如此解释

The FileReference and FileReferenceList classes also do not providemethods for authentication. With servers that require authentication,you can download files with the Flash? Player browserplug-in, but uploading (on all players) and downloading (on thestand-alone or external player) fails. Listen for FileReference eventsto determine whether operations complete successfully and to handleerrors.

翻译过来就是 FileReference 不支持验证功能。

解决方法
1. 不使用FileReference,而使用form post上传文件。这样和普通的Html页面一样了。
2. 将Session id传到服务器。 如果你使用的Server是TomCat/JSP 可以如下添加SessionID. var request:URLRequest = new URL Request("http://www.[your url].com" ";jsessionid=" _yoursessionid); 3. 不验证Session,而检查上传ID。比如每次上传前,服务器生成一个ID,上传的时候把这个传ID作为URLRequest的参数传过去。
4. 将需要验证的用户名密码,添加至URLRequest的参数,在服务器端进行验证,然后在服务器端,将用户信息存入session,这样,只要flex页面session不变,下次提交请求时,服务器端的session就是保存用户信息的session。
5. 等待adobe发布hotfix.

  相关解决方案