Re: how to upload large file ( bigger than 1G) with PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2010-03-12 at 11:37 -0800, Michael Shadle wrote:

> On Fri, Mar 12, 2010 at 4:41 AM, Ashley Sheridan
> <ash@xxxxxxxxxxxxxxxxxxxx> wrote:
> 
> > I've noticed that large uploads over http seem to behave a little
> > unpredictably at times, and aren't something I'd rely on. FTP is
> > definitely the way to go, and there are plenty of Java applets that
> > allow you to do this.
> 
> FTP is not a realistic option, for a multitude of reasons.
> 
> a) mapping an HTTP request and user -> FTP account / "pick this file up"
> b) firewall issues
> c) additional services having to be enabled and routed to on the server side
> 
> While I do agree FTP is FILE transfer protocol, it still isn't the
> right solution IMHO. Ideally, HTML5 will provide a more industry
> standard method (IIRC, a coworker already pointed out something in the
> spec for it, but I forget)
> 
> A very workable solution we've came up with has been using Google Gears + PHP.
> 
> Re-using the browser and HTTP conversations provides us multiple benefits:
> a) Cookie support - to identify the user
> b) supports HTTP and HTTPS
> c) Firewalls are not an issue - reuses the same proxy settings
> 
> The difference between standard file upload using a single POST vs.
> our method is key - it's chunking the file. Google Gears has this
> support, Java can too; send up portions of the file at a time, and
> either glue it together on the fly on the server, or take all the
> chunks and merge them all at once at the end. By doing it in a chunked
> format, it allows us to also re-transmit failed chunks and treat files
> of any size in "bite size chunks" - with a little bit of Javascript,
> PHP and Gears, we can support files of any size (within filesystem and
> OS limits) and it does not require -any- tweaking of the webserver. It
> is chunks of data sent to the server using standard POSTs and small
> enough to fit under even small PHP and webserver memory limits (and
> could always be configurable) - no more suhosin.memory_limit,
> memory_limit, post_max_size, upload_max_filesize to fuss with.
> 
> It's a shame that Google had to decide to stop developing and
> maintaining Gears. It was a lightweight, perfect solution.
> 
> We're working on a Java-based version instead now. Lightest footprint
> we can possibly get in Java, but it's the only applet language that
> has all the support we need for chunking, cross-browser,
> cross-platform, etc.
> 
> I believe our plan is to release it out to the public so people can
> enhance it, use it, do whatever...
> 
> For now though, Gears works pretty awesome for us, a handful of our
> users have complained though Gears won't install for them (not sure
> why) and there is no support for Snow Leopard, I believe. So we're
> starting to hit the point where it isn't our magical solution anymore.
> 


It's not much trouble to map the FTP to a file and have the right
permissions, and FTP is a doddle to set up on a server. I'd say a darn
sight less work than rolling your own mechanism in Java.

Lastly, I don't think firewalls are that big an issue, as most firewalls
I've seen will allow outgoing FTP connections from a users computer by
default.

Thanks,
Ash
http://www.ashleysheridan.co.uk



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux