异步发送文件到服务器

时间:2015-07-28 19:53:45

标签: javascript c# asp.net-mvc-4

浏览器端:js功能

function insertDocFile(file) {
    var id=@Model.Id;
    var formdata = new FormData();
    formdata.append(file.name, file);
    if (window.XMLHttpRequest) {
        var xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
    try {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                return false;
            }
        }
    }
    else {
        return false;
    }
    xhr.onload = function () {
        var data = JSON.parse(this.responseText);
    };
    xhr.open('post', '/Hike/UploadBlog/' + id);
    xhr.send(formdata);
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            ...
        }
    }
}

输入参数'file'是发送到服务器的文件。 服务器端:

    [HttpPost]
    [Authorize]
    public ActionResult UploadBlog(int id)
    {
            HttpPostedFileBase fileData = Request.Files[0];
            return View()
    }

但Request.Files计数为0.

文件未发送到服务器。几个星期前,这段代码很有用。但有一次它停了下来。我没有做任何改变。可能是由于这个错误造成的。这种行为可能是什么原因?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我发送了大于70 MB的.doc文件。这样的文件不会以这种方式发送。有必要在客户端进行划分,发送部件并在服务器上进行组装。

感谢您的帮助。