2012-11-13 81 views
3

我想通過XMLHttpRequest上傳文件。我創建typeinputfile和使用下面的語句使用dojox.form.Uploader和FormData上傳文件

var files = document.getElementById("fileInput").files; 
var file = files[0]; 
var formData = new FormData(); 
formData.append("fileInput", file); 
. 
. 
. 
xhr.send(formData); 

這個工程得到文件數據!但是,當使用dojox.form.Uploader我WITE是這樣的:

var files = dijit.byId("dojoFileInput").getFileList(); 
var file = files[0]; 
var formData = new FormData(); 
formData.append("dojoFileInput", file); 
. 
. 
. 
xhr.send(formData); 

這並不工作!我不能使用dojox.form.Uploaderupload函數,因爲我需要在FormData對象中發送一些附加數據。我使用這個說法

<div dojoType="dojox.form.Uploader" label="Select files..." id="dojoFileInput"></div> 

我試着用這些語句打印在控制檯中的文件數據創建道場文件上傳:

console.log(document.getElementById("fileInput").files[0]); // Normal file input 
var files = dijit.byId("dojoFileInput").getFileList(); // Dojo file input 
console.log(files[0]); 

正常文件輸入提供了以下輸出(實際上有很多更多信息比這個根據每個部分,但這冷凝):

File {webkitRelativePath: "", lastModifiedDate: Sat Nov 10 2012 19:42:45 GMT+0530 (India Standard Time), name: "<FILE NAME>", type: "image/png", size: 115661} 
    lastModifiedDate: Sat Nov 10 2012 19:42:45 GMT+0530 (India Standard Time) 
     __proto__: Invalid Date 
     name: "<FILE NAME>" 
     size: 115661 
     type: "image/png" 
     webkitRelativePath: "" 
    __proto__: File 
     constructor: function File() { [native code] } 
     arguments: null 
     caller: null 
     length: 0 
     name: "File" 
     prototype: File 
     toString: function toString() { [native code] } 
     __proto__: Object 
     <function scope> 
    __proto__: Blob 
     constructor: function Blob() { [native code] } 
     slice: function slice() { [native code] } 
     webkitSlice: function webkitSlice() { [native code] } 
     __proto__: Object 

但道場文件上傳只給出一個線路輸出:

Object {index: 0, name: "<FILE NAME>", size: 115661, type: "image/png"} 

Dojo是否不會提供可發送到服務器的整個文件詳細信息?這是使用dojo文件上傳器將文件發送到服務器的正確方法嗎?任何想法如何可以做到?

回答

1

上傳器有一個提交方法,允許您添加發布數據。

+0

嗨@mwilcox是否有提交,我可以用來確保文件是否會在上傳前通過一定的條件?我在google chrome中得到了「失敗:連接重置」(這是由於目錄權限)。我確實收到了_HTML5.js和ProgressEvent返回的異常,但沒有任何幫助。 – pcproff