将HUGE文件> 2GB上传到nodejs(n Firefox)
我已经把我的例子作为基本的可能。 我尝试上传超过2 GB的大文件到我的服务器,但只在Firefox中收到错误。 在Chrome似乎工作好。 它说“错误:连接断开”。 有人能解释我为什么,我能做些什么呢?
var http = require("http"); var url = require("url"); http.createServer(function (request, response) { switch(url.parse(request.url).pathname) { case "/": displayForm(request, response); break; case "/upload": response.writeHeader(200, {"Content-Type":"text/html"}); response.end( '<h1>File Uploaded!</h1>' ); break; } }).listen(1234); var displayForm = function(request, response) { response.writeHeader(200, {"Content-Type":"text/html"}); response.end( '<form action="/upload" method="post" enctype="multipart/form-data">' + '<input type="file" name="uploadFile">' + '<input type="submit" value="Upload!">' + '</form>' ); };
编辑 :我只是意识到它只发生在Firefox ,而不是在Chrome!
对于这样的大文件,我build议你用FileReader
读你的文件,用Blob
或者Blobbuilder
将它块放在小的二进制文件中,然后用进度条块(用Socket.io)传输文件块,连接服务器上的块。 当最后一个块被发送时 – 你的后端有完整的文件。
您也可以在Cookie / LocalStorage中保存当前数据块号码,以便连接中断以继续传输。
PS古老的IE和其他狗屎有使用Blobs,谷歌它的Flash插件。
PSS最大文件大小由不同浏览器的POST请求: http : //motobit.com/help/scptutl/pa98.htm
- 在电子,如何从它的全文件名上传文件
- 使用XMLHttpRequest将多个file upload到Express.js 3.5服务器
- file upload在KoaJS
- 当我在onFileUploadStart()中包含逻辑时,Multer不上载文件 – NodeJs
- 在Krakenjs应用程序中,file upload与Multer挂起
- 我可以通过node.js中的socket.io将file upload到服务器吗?
- 使用node.js上传文件后,将文件从临时文件夹移动到当前文件夹
- 错误在使用“vaadinfile upload”(聚合物)通过nodejs与express
- 如何从JS中的ArrayBuffer写入文件