在Flex中使用FileReference上传文件的时候,遇到了一个很怪的问题。文件上传在IE中一切正常,而在Firefox中总是失败。Debug后发现,firefox中上传文件时,请求总是没有验证。用google一把,发现原因是: Firefox中,FileReference使用的URLRequest和Flash所在页面用的不同的Session. 所以即使你已经登录,由于上传的请求用的是不同的Session,服务器无法得知请求已经验证。 Adobe文档如此解释
翻译过来就是 FileReference 不支持验证功能。 [b]解决方法 [/b]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. 等待adobe发布hotfix. 有人知道怎么在Asp.net中把Session ID和URL一起传到服务器,而且服务器使用这个SessionID表示的Session吗? 我没有找到答案。