我在尝试自己寻找答案时发现了这个问题。解决方案相当简单。
基于Flash播放器错误 http://bugs.adobe.com/jira/browse/FP-201根据其他人链接的内容以及该页面上的评论,我决定将会话标识符附加到我的上传 URL 并尝试一下。真的就是这么简单!
为了使其正常工作,我首先添加一个名为 sessionParams 的 flashVar 参数。这允许我将任何我想要的字符串作为我的会话标识符传递给 Flash 播放器,并且稍后它会被附加到用于上传的 URL 中。
//sessionParams - resolves firefox upload bug
public var sessionParams:String = "";
//...
public function initApp():void{
sessionParams = Application.application.parameters.sessionParams;
}
就我而言,我在启用了 java 会话的 ColdFusion 上,所以我的sessionParams
在传递到 Flash 播放器之前设置如下:
<cfset flashVars = "sessionParams=#urlEncodedFormat('jsessionid=' & session.sessionid)#" />
不要忘记转义 =、& 等特殊字符(我已使用 urlEncodedFormat 完成),以便将它们视为“sessionParams”参数值的一部分,而不是指示其他参数的断点。您正在将未来 URL 信息嵌入到当前 URL 中。
然后,在上传代码中使用 sessionParams 值。这是我如何设置的一个片段:
// Set Up URLRequest
_uploadURL = new URLRequest;
_uploadURL.url = _url + "?" + _sessionParams;
_uploadURL.method = "GET";
_uploadURL.data = _variables;
_uploadURL.contentType = "multipart/form-data";
变量名称不同(但相似),因为这是可重用类的一部分。
希望这对您有帮助。如果没有,请告诉我,我将尝试提供更多代码或解释来帮助您。