我正在使用uploadify 2.1.4,http://www.uploadify.com
local js:
jQuery('#file_upload').uploadify({
'buttonImg' : 'public/uploadify/newfile.png',
'uploader' : 'http://remoteserver/uploadify.swf',
'scriptAccess' : 'always', ...
在远程服务器中我有这个跨域:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
我编辑uploadify.fla并输入以下代码:
import flash.system.Security;
...
Security.allowDomain("*");
然后生成一个新的uploadify.swf
问题是: 使用Firefox,Safari,Chrome e Opera,但在IE(v7,v8,v9(我不用v6测试))仍然收到错误:安全错误(在.uploadifyQueueItem中)
答案 0 :(得分:0)
我不确定为什么你可以使用jquery上传到服务器,直到你可以直接从闪存(因为你已经使用闪存)。这是我如何做到这一点,我在IE中没有问题。对不起,我无法直接回答你的问题,我不太了解JQuery。
var request:URLRequest = new URLRequest( "http://remoteserver/uploadify.swf" );
request.data = myjpeg;
request.contentType = "image/jpeg";
request.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader( );
loader.addEventListener( Event.COMPLETE, handleResponse );
loader.load( request );
function handleResponse (evt:Event) {
trace(evt.target.data); //print response from server if there is one
}
答案 1 :(得分:0)
我解决了这个问题:
在我的js中:
jQuery('#file_upload').uploadify({
script: '/upload',
uploader: 'http://domain.com/uploadify.swf'
但是,当在uploadify.swf中打印(requestURL.url)时,放置:“http://www.domain.com/upload”;因此,闪存导致安全错误,因为“http://www.dom ...”!=“http:// dom ...”
答案 2 :(得分:0)
我没有按照如何在将文件从一台服务器上传到另一台服务器时修复IE安全问题。
我的uploadify.swf托管在服务器1上,上传php脚本在服务器2上。 服务器2上的Crossdomain.xml具有允许上载的指令。
在FF,Chrome,Safari中运行良好,但IE会引发安全阻止。
由于 Melwyn
答案 3 :(得分:0)
嗨,我从另一个问题得到解决方案。 dynamically setting properties in uploadify
添加以下属性以避免IE8中的安全性异常
'method' : 'GET',
现在正在为我工作。我的总代码如下所示
$('#file_uploads').uploadify({
'onUploadSuccess': function (file, data, response) {
$scope.uploadedFileList.push(JSON.parse(data)[0].files);
$scope.$apply();
},
'onQueueComplete': function (queueData) {
},
'onDialogClose': function (queueData) {
// console.log(queueData);
if (queueData.filesSelected > 5 || (queueData.filesSelected + $scope.uploadedFileList.length) > 5) {
bootbox.alert({
title: CommonUtility.errorLabel,
message: "Maximum 5 files allowed.",
callback: function () {
}
});
$('#file_uploads').data('uploadify').queueData = "";
} else if (queueData.queueSize > 5000000) {
bootbox.alert({
title: CommonUtility.errorLabel,
message: "Total file size should not exceed 5 MB",
callback: function () {
}
});
} else
$('#file_uploads').uploadify('upload', '*');
},
'auto': false,
'fileTypeExts': '*.gif; *.jpg; *.png; *.doc; *.pdf; *.xls; *.zip;',
'scriptAccess': 'always',
'swf': 'assets/css/uploadify.swf',
'uploader': 'uploadfile',
'method': 'GET',
'buttonText': 'Browse',
});