2gb browser upload limit yes/no?

I need to upload more than 2Gb via web browser. Before you go say "you should use FTP", it's just not that simple. I can't ask my users to accept java-applets or install client software (it's a gov't thing). And so far I have not seen anyone make a lightweight AJAX-based FTP uploader with progress bar.

After researching the 2Gb limitation on multiple platforms (32- & 64-bit, Windows & Linux, various app servers, various web servers) I am drawing the conclusion that the buck stops with the browser (regardless of underlying architecture). Here is one link that makes me think so: http://www.motobit.com/help/ScptUtl/pa33.htm

Can anyone here CONFIRM 100% that this is the case? That the limitation is with the browser, not with the SWFUploader or server?

If someone here says they can "upload" more than 2Gb just fine, whether with SWF Uploader or some other means, please explain in detail what your environment is and how you're doing it. And if anyone has seen an Ajax-based FTP uploader comparable to SWFUploader please let me know.

Last question...why can't/doesn't the Uploader support FTP protocol? Is it a Flash thing? Thanks in advance for your answers!

gyphie's picture

Flash thing

The HTTP upload is handled completely by Flash and that is what we are limited by. SWFUpload is just a wrapper for the Flash FileReference library functions.

gyphie's picture

File size

File size is strongly limited by OS, File System and Software (Browser & Plugin) design. 32 bit software (and 32 bit OS) can handle signed numbers as large as 2 GB (-2147483648 to 2147483648 or so). This is why in your post the guys mentions negative numbers. Because of the way it works in most cases if you try to store a number larger than 2147483648 in the 32 bit signed slot it wraps around to the negative end and starts counting up from there.

Some software will use 32 bit unsigned integers which can get you up to 4GB but this seems to be a special case for some reason (I don't know why, file sizes aren't going to be negative).

So, the file size is limited by all those factors. The Browser, OS, and Server must all support file sizes larger than 2 GB. I have not tested a file larger than 2 GB to see if the Flash Plugin will handle it but I suspect that it will not (even if your brower, server, etc do) because it stores the file size and reports upload progress using 32 bit signed integers (thus the 2 GB limit).

Technically Flash doesn't support uploads larger than 100 MB (according to Adobe's documentation) but I've never had it fail based on that "limitation".

P.S. Maximum file size at the File System level gets complicated and is usually more often limited by the software used to manipulate the file system. For example NTFS has a 16 Terabyte limit but software accessing the files are most often limited to 2 GB or 4 GB imposed by the 32bit limits described above.

If it was just a server

If it was just a server limitation, that could be easily fixed by moving to 64-bit. But since Flash is a client plugin, I guess we have no choice but to be held back by the 2Gb limit of all the 32-bit systems out there.

Fyi, I discovered a Java applet that gets around the 2Gb limit nicely by "chunking" files into any size you want. http://jupload.sourceforge.net/ You can them re-join them on the server side using a variety of tools (even ColdFusion can do this). Applets have their downside, too, but what I plan to do is offer users a link the applet if they have files over 2Gb. You could even sniff the file sizes and route the larger files to the applet automatically.

Here's the word from Adobe on Flash for 64-bit: http://kb.adobe.com/selfservice/viewContent.do?externalId=6b3af6c9

gyphie, thanks for the response.

bate_g's picture

Adobe Support

Hi *,
I have the same problem, and I have contacted the adobe suport for this case. And here is the answer:

... Here is the reply from the escalation team regarding this issue:
"Flash Player and the FileReference API (see About file uploading and downloading) support file uploads and downloads. Although the player has no restriction on the size of files you can upload or download, the player officially supports uploads/downloads of up to 100 MB."
The limit is also related to the system and java resource. Could you please load the same file from the same system with jsp, and see if you can load the whole file without any problem. I would think you will have the same type of problem. If you can load from jsp page, but can't load from flash, then that indicates it is restriction. But in any case, even though there is no restriction on the size, and you may be load as big as your system and java resource allowed, but we officially support up to 100MB.
...

I'll be verry happy if someone has a workaround for this case. I have found this JUpload applet, but it is not a solution for our use case.

Best regards!