我想提供在我的Web应用程序中上传大小超过1 GB的zip文件的工具。我正在服务器端使用Multer节点模块使用nodejs版本8.11.3。在本地测试此功能时,它工作正常,但是当我在任何云服务器上托管我的应用程序时(无论云提供商如何),它都无法正常工作,从而导致浏览器无响应。通过网络上传文件时似乎出现了问题。通过提琴手/邮递员的请求进行了尝试,但未成功。
已经遵循链接中提到的解决方案:
尝试按块发送文件数据导致许多http请求以浏览器崩溃而终止 https://hpbn.co/xmlhttprequest/
尝试使用websocket发送数据(结果相同) 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,也应该上传文件而没有任何性能瓶颈。