Lars Aronsson schrieb:
On 07/20/2010 04:30 PM, Roan Kattouw wrote:
This does need client-side support, e.g. using
the Firefogg extension
for Firefox or a bot framework that knows about chunked uploads.
Requiring special client software is a problem. Is that really
the only possible solution?
It appears to be the only good solution for really large files. Anything with a
progress bar requires client side support. Flash or a Java applet would be
enough, but both suck pretty badly.
I'd say: if people really need to upload huge files, it's ok to ask them to
install a browser plugin.
I understand that a certain webserver or PHP
be a problem, in that it might receive the entire file in /tmp (that
might get full) before returning control to some upload.php script.
IIRC, PHP even tends to buffer the entire file in RAM(!) before writing it to
/tmp. Which is totally insane, but hey, it's PHP. I think that was the original
reason behind the low limit, but I might be wrong.
But I don't see why HTTP in itself would set a
limit at 100 MB.
HTTP itself doesn't. I guess as long as we stay in the 31 bit range (about 2GB),
HTTP will be fine. Larger files may cause overflows in sloppy software.
However, HTTP doesn't allow people to resume uploads or watch progress (the
latter could be done by browsers - sadly, I have never seen it). Thus, it sucks
for very large files.
What decides this particular limit? Why isn't it
50 MB or 200 MB?
I think it was raised from 20 to 100 a year or two ago. It could be raised a bit
again i guess, but a real solution for really large files would be better, don't
Some alternatives would be to open a separate
upload ("requires special client software" -- from the 1980s,
still in use by the Internet Archive) or a get-from-URL
(server would download the file by HTTP GET from the user's
server at a specified URL).
To make this sane and safe, with making sure we always know which user did what,
etc, would be quite expensive. I have been thinking about this kind of thing for
mass uploads (i.e. uploads a TAR via ftp, have it unpack on the server, import).
But that's another barrel of fish. Finishing chunked upload is better for the
average user (using FTP to upload stuff is harder on the avarage guzy than
installing a firefox plugin...)