使用 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,看起来很小,文件肯定比这大。 这让我相信文件没有在请求中发送。

使用 AJAX 上传文件

这个答案确实帮助我解决了我的问题......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]);
}