1

我想提供在我的 Web 应用程序中上传大小超过 1 GB 的 zip 文件的功能。我正在使用服务器端的 Multer 节点模块使用 nodejs 版本 8.11.3。在本地测试此功能时,它可以正常工作,但是当我在任何云服务器上托管我的应用程序时(无论云提供商如何),它都无法正常工作,导致浏览器无响应。通过网络上传文件时似乎存在问题。通过提琴手/邮递员请求尝试但没有成功。

已经遵循链接中提到的解决方案:

尝试分块发送文件数据导致许多 http 请求以浏览器崩溃结束 https://hpbn.co/xmlhttprequest/

尝试使用 websockets 发送数据(结果相同) https://github.com/rico345100/socket.io-file-client

尝试过 FTP 方法 http://ftp.apixml.net/

// 服务器端代码

let limits = {
        files: 1,
        fileSize: 5000 * 1024 * 1024
    }

uploads = multer({
            dest: "/uploads/",
            limits: limits,
            fileFilter: function(req, file, cb) {
                ...
            }
        });

// 客户端代码

var fd = new FormData();
fd.append("fileToUpload", blobFile);
  var xhr = new window.XMLHttpRequest();
    $.ajax({
                        url: `/upload`,
                        type: "POST",
                        data: fd,
                        processData: false,
                        contentType: false,
                        xhr: function() {
                        },
                        success: function(response) {
                        },
                        error: function(errorMsgResp) {
                        }
                    });

预期的结果是即使文件大小超过 1GB,也应该上传文件而没有任何性能瓶颈。

4

0 回答 0