2014-04-07 322 views
0

myI一直在嘗試將文件上傳到服務器,並且我遇到了困難,似乎該文件未被髮送到服務器。我發現這個問題How can I upload files asynchronously?但是我不能從我所擁有的例子中看到很多不同的做法。我有以下形式:使用AJAX上傳文件

<form id = "selectFileForm" enctype="multipart/form-data" /> 
<input type = 'file' multiple ='multiple'> 
</form> 
在JavaScript

然後我有以下幾點:

submitForm : function(){ 
    var uploadFormData = new FormData(document.getElementById("selectFileForm")); 

    $.ajax({ 
     url : "myHandler.ashx/fileUpload", 
     type: "POST", 
     data : uploadFormData, 
     processData : false, 
     contentType : false 
    }); 
} 

在我的處理程序(ASP 2.0)我有以下代碼:

private string fileUpload(HttpContext context) 
{ 
return context.Request.InputStream.Length.ToString(); 
} 

該處理器正在給我一個44的迴應,看起來很小,文件肯定比這個大。這使我相信文件沒有在請求中發送。

+1

你可能想看看這個.. HTTP:// stackov erflow.com/questions/16963787/file-upload-with-jquery-ajax-and-handler-ashx-not-working – spetzz

回答

2

這個答案沒有幫我解決我的問題... stackoverflow.com/questions/16963787/

釷的問題是,我需要把它添加到我的javascript

formData.append('file', $('#file')[0].files[0]); 

這將爲工作單文件上傳,但如果你正在使用的輸入類型文件的多個選項,您將需要一個for循環,追加像這樣每個文件:

for(var i =0; i < files.length; i++) 
{ 
    uploadFormData.append('file',files[i]); 
}