使用 AJAX 上传文件
本文关键字:文件 AJAX 使用 | 更新日期: 2023-09-27 17:57:05
my我一直在尝试将文件上传到服务器,但遇到困难,似乎文件未发送到服务器。 我发现了这个问题如何异步上传文件?但是我看不出在这个例子中所做的与我所拥有的有什么不同。 我有以下表格:
<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,看起来很小,文件肯定比这大。 这让我相信文件没有在请求中发送。
这个答案确实帮助我解决了我的问题......stackoverflow.com/questions/16963787/
问题是我需要将其添加到我的 JavaScript 中
formData.append('file', $('#file')[0].files[0]);
这将适用于单个文件上传,但如果您在输入类型文件上使用 multi 选项,您将需要一个 for 循环来附加每个文件,如下所示:
for(var i =0; i < files.length; i++)
{
uploadFormData.append('file',files[i]);
}