2012-05-11 16 views
1

我在IE中使用Dojo 1.6 dojox.form.Uploader。這使用dojox.form.uploader.plugins.Flash插件來完成上傳。在Firefox中,HTML5的使用和我可以通過調用提交與一起上傳其他形式的數據:用於IE的Dojo 1.6多文件Flash上​​傳器的表單數據?

uploaderDijit.upload({paramName:"paramValue"}); 

但在IE瀏覽器,Flash版本的上傳功能不走FORMDATA說法。有什麼方法可以使用Flash插件提交其他數據以及文件上傳?

這裏是我的示例代碼:

dojo.require("dojox.form.Uploader"); 
dojo.require("dojox.form.uploader.FileList"); 
dojo.require("dojox.form.uploader.plugins.Flash"); 

function doUpload(){ 
    dijit.byId("uploader").upload({param: "paramValue"}); 
} 

function onload(){ 
    // create uploader & file list dijits 
    var uploaderDijit = new dojox.form.Uploader({ 
      id: "uploader", 
      url: "MyApp/MyServlet", 
      multiple: true 
    }); 
    var fileListDijit = new dojox.form.uploader.FileList({uploader:uploaderDijit}); 

    // insert dijits into html 
    var formNode = dojo.byId("multiUploadForm"); 
    var uploaderDiv = document.createElement("div"); 
    formNode.appendChild(uploaderDiv); 
    uploaderDiv.appendChild(uploaderDijit.domNode); 
    uploaderDiv.appendChild(fileListDijit.domNode); 
} 

dojo.addOnLoad(onload); 

和:

<form id="multiUploadForm" method="post" enctype="multipart/form-data" encoding="multipart/form-data"></form> 
<button onclick="javascript:doUpload();">Upload</button> 

我試圖增加一個輸入節點到窗體:

<form id="multiUploadForm" method="post" enctype="multipart/form-data" encoding="multipart/form-data"> 
    <input type="hidden" name="param" value="paramValue"/> 
</form> 

而且我也試過追加參數到url,但沒有骰子:

var uploaderDijit = new dojox.form.Uploader({ 
    id: "uploader", 
    url: "MyApp/MyServlet?param=paramValue", 
    multiple: true 
}); 

回答

0

我相信其他的東西是錯誤的。以下是(所有從1.7.2 src開始的)你稱之爲第一個代碼塊的入口點的函數。如果您使用的是url: "MyApp/MyServlet?param=paramValue" ,則100%確定性應該設置GET參數。

uploadFlash: function(/*Object ? */formData){ 
     // summary: 
     //    Uploads selected files. Alias "upload()" should be used instead. 
     // tags: 
     //    private 
     this.onBegin(this.getFileList()); 
     formData.returnType = "F"; 
     this.flashMovie.doUpload(formData); 
}, 
+0

感謝您指出這一點,我會給1.7.2一個嘗試,因爲有一個明顯的區別。 1.6代碼不處理formData參數。 – tekkgurrl

+0

它使用1.7.2,謝謝! – tekkgurrl

+0

很高興聽到:)道具! – mschr

相關問題