将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