异步发送文件到服务器

本文关键字:服务器 文件 异步 | 更新日期: 2023-09-27 18:05:08

浏览器端: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()
    }

但请求。文件数为0。

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

异步发送文件到服务器

我解决了这个问题。我发送的是大于70mb的。doc文件,这样的文件不会这样发送。有必要在客户端进行划分,在服务器端进行发送部件和组装。

谢谢你的帮助。