2011-07-27 30 views
1

我使用uploadify 2.1.4,http://www.uploadify.comInternet Explorer的 “安全错误” uploadify

本地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

的问题是: 与火狐,Safari,Chrome浏览器ē歌剧院工作,但在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 
} 
0

我解决了这个问题:

在我的js

jQuery('#file_upload').uploadify({ 
    script: '/upload', 
    uploader: 'http://domain.com/uploadify.swf' 

但是,当印刷(requestURL.url)在uploadify.swf,提出:“HTTP:// WWW .domain.com /上传“;所以然后闪存导致安全错误,因为“http://www.dom ...”!=“http:// dom ...”

0

我没有按照如何解决IE安全问题,而从一个上传文件服务器到另一个。

我的uploadify.swf位于服务器1上,上传的php脚本位于服务器2上。 服务器2上的Crossdomain.xml指令允许上传。

在FF,Chrome,Safari中正常工作,但IE引发安全拦截器。

感谢 Melwyn

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', 
    });