2011-07-27 44 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', 
    });