views:

517

answers:

3

Hi, I have a web app and I want to offer the possibility of upload and download big files (more than 2 gigas)

Is it possible? Does exist some open Source project that can help me?

Thank you very much

+1  A: 

I'd recommend taking a look at Amazon's S3. It may be the solution you are looking for but if not it can provide you with an exmaple of how to do big file transfers using a HTTP REST request or SOAP+DIME web service.

sipwiz
I know S3 a lot. But I need another solution. I don't want to use amazon. Thank you
xfernandez
+2  A: 

Yes, amazon S3 is great, i use it every day. If however you want to self-host the data, i suggest BITS - Background Intelligent Transfer Service-

http://en.wikipedia.org/wiki/Background%5FIntelligent%5FTransfer%5FService http://www.codeplex.com/sharpbits

alex
+2  A: 

Clarification

As OP stated in a comment, this question is related to J2EE and Flex. It has nothing to do with PHP or any of the stated web servers.

My original answer

Yes, what you are trying to do is possible.

The problem that most people encounter is the limits set by PHP. Most notably these are upload_max_filesize and post_max_size. Next thing you probably need is to increase the max_execution_time so that your script does not time out. The timeout is tricky though, as it relates to the clients upload speed.

These settings are best set on an "as-needed" basis (if possible) and not in your core configuration (php.ini, apache config, ...).

Apart from these (server-side imposed) limits, there is nothing that limits you to upload large files. Maybe the web-server itself also imposes some limits. Apache has LimitRequestBody and lighttpd has server.max-request-size for example.

Another solution is to write a custom CGI script. But then you still have the limits imposed by the web server!

It would help to know which language you are writing your website in... ;)

exhuma
Server side is J2EE Client side is FLEX. But flex doesn't support big file transfer. I want to use some applet u http client that will be called by flex client and maybe open in other tab.Thank you
xfernandez
Unfortunately I don't have a lot of experience with Java web applications. I never needed to upload large amounts of data on one. But the ideas should be the same nevertheless. Web servers and execution environments (in your case the JRE) impose these limits mainly to prevent endless loops and/or attacks. Which application server do you use? Glassfish? WebSphere? something else?...
exhuma