使用AJAX上传文件

时间:2014-04-07 15:34:13

标签: c# javascript jquery

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

1 个答案:

答案 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]);
}