myI一直在尝试将文件上传到服务器,我遇到了困难,似乎文件没有被发送到服务器。我发现了这个问题How can I upload files asynchronously?但是我不能在这个例子中看到与我所拥有的不同。我有以下表格:
<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的响应,看起来很小,文件肯定比那个大。这让我相信文件没有在请求中发送。
答案 0 :(得分:2)
这个答案确实帮我解决了我的问题... stackoverflow.com/questions/16963787 /
问题是我需要将其添加到我的javascript
formData.append('file', $('#file')[0].files[0]);
这适用于单个文件上传,但如果您在输入类型文件上使用multiple选项,则需要一个for循环来附加每个文件,如下所示:
for(var i =0; i < files.length; i++)
{
uploadFormData.append('file',files[i]);
}