[php] Manier om grote bestanden te uploaden *

Pagina: 1
Acties:

Onderwerpen


  • youngster
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:10
Voor de supportsite die ik gebouwd heb (in php), is er veel vraag naar het uploaden door klanten van databases en logfiles.
Ik heb momenteel wel een uploadfunctie maar dit gaat goed tot hooguit 10MB ivm max_execution_time en max_upload_size.

Nu is mijn vraag, zijn er nu echt helemaal geen mogelijkheden om vanuit een webapplicatie grote bestanden à 200 mb te uploaden naar de webserver?
Je komt hiervoor bijna altijd bij FTP terecht maar dat werkt heel klantonvriendelijk (klant moet ftp client installleren, account krijgen etc.) en werkt niet vanuit een webapplicatie.

Zijn er echt helemaal geen mogelijkheden?? Waar ik ook aan gedacht heb maar wat wel weer een heel gedoe is om via een applet ofzo bestanden te selecteren, te zippen in bestanden van 5 mb en dan omstebeurt te versturen... Zou dat uitvoerbaar zijn?

Graag jullie ideeën!!!!

Real programmers don't comment their code... it was hard to write, it should be hard to read!


  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik denk dat je aan een java oplossing moet denken. Overigens is ftp ook gebruiksvriendelijk te maken. Hier zijn genoeg leuke scriptjes en/of java applicaties voor te vinden. Op hotscripts is een en ander te vinden. Zie bijvoorbeeld http://jupload.biz/ of http://www.radinks.com/upload/

[ Voor 81% gewijzigd door Noork op 23-12-2004 14:44 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-04 11:20

Bosmonster

*zucht*

die execution time op 0 zetten (oneindig)

En de PHP/Apache POST/upload sizes op een GB zetten ofzo.

Maar of het echt gaat werken.. je hebt geen controle over status of progress. Ook een internet haperingetje van een seconde kan je upload van 200MB al resetten.

Wat je eventueel kunt doen is een venstertje maken met daarin een FTP-locatie. Dan kunnen klanten daar bestanden op droppen. Volgens mij moet dat werken, maar verzin het ter plekke :P

Op zich wel geinig een iframepje met "drop hier je upload" :)

[ Voor 122% gewijzigd door Bosmonster op 23-12-2004 14:44 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Bosmonster schreef op donderdag 23 december 2004 @ 14:41:
Op zich wel geinig een iframepje met "drop hier je upload" :)
Dat werkt waarschijnlijk (bijna zeker weten :P) alleen in Internet Explorer, tenzij je er een hoop JS aan gaat hangen. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 23:57

.oisyn

Moderator Devschuur®

Demotivational Speaker

* taal in titel

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 23-04 16:41

drm

f0pc0dert

HTTP is gewoon niet geschikt voor dat soort afmetingen bestanden, dus je kunt idd beter een appletje of andersoortig FTP oplossinkje bedenken. Een FTP client met een applet is overigens zo geschreven / gevonden.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-04 11:20

Bosmonster

*zucht*

-NMe- schreef op donderdag 23 december 2004 @ 14:57:
[...]

Dat werkt waarschijnlijk (bijna zeker weten :P) alleen in Internet Explorer, tenzij je er een hoop JS aan gaat hangen. :P
Aangezien het voor een supportsite is is een IE eis niet zo'n ramp. Firefox kan wel FTP lezen/downloaden, maar niet uploaden voor zover ik kan zien.

Een java-appletje zal wel het verstandigste zijn. Of als je een beetje andere talen kunt programmeren kun je eventueel ook een eenvoudig FTP programmaatje maken.

Login met username/password en een browse knop, meer heb je dan niet nodig bijvoorbeeld.

Anoniem: 110032

http://www.phpfreakz.nl/library.php?sid=16967
Is dat niet wat je zoekt? Of gaat dat uiteindelijk ook via http?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-04 11:20

Bosmonster

*zucht*

ja.. dit is gewoon een normale upload, maar vervolgens ftp't de server het.

  • youngster
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:10
Bedankt voor alle ideeën!

HTTP is gewoon niet geschikt voor dat soort afmetingen bestanden, dus je kunt idd beter een appletje of andersoortig FTP oplossinkje bedenken. Een FTP client met een applet is overigens zo geschreven / gevonden.
Dit klinkt erg interessant, ik ga eens op zoek naar zo'n script, ik dacht alleen dat een applet niet de lokale schijven mag benaderen?
Oneens: de supportsite is dan wel in PHP geschreven, maar voor het uploaden sta ik open voor oplossingen in alle talen, zoals dus bijv java (applets).
Daarom had ik geen taal in de titel opgenomen.

Real programmers don't comment their code... it was hard to write, it should be hard to read!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

youngster schreef op donderdag 23 december 2004 @ 14:39:
Nu is mijn vraag, zijn er nu echt helemaal geen mogelijkheden om vanuit een webapplicatie grote bestanden à 200 mb te uploaden naar de webserver?
Je komt hiervoor bijna altijd bij FTP terecht maar dat werkt heel klantonvriendelijk (klant moet ftp client installleren, account krijgen etc.) en werkt niet vanuit een webapplicatie.
Als je IE als eis stelt kun je trouwens nog steeds doen wat Bosmonster hierboven zegt. Gewoon een iframe openen op je pagina die linkt naar ftp://username:password@domein.nl, en dan kun je daar gewoon dingen heen slepen. Dat is de meest eenvoudige oplossing zowel voor jou, als de klant lijkt me. Maar nogmaals: dan is IE een eis. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 18:38
drm schreef op donderdag 23 december 2004 @ 15:11:
HTTP is gewoon niet geschikt voor dat soort afmetingen bestanden, dus je kunt idd beter een appletje of andersoortig FTP oplossinkje bedenken. Een FTP client met een applet is overigens zo geschreven / gevonden.
Ik vind dat eigenlijk onzin. HTTP is geschikt om allerlei documenten mee te vesturen; ook relatief grote, zolang je maar bereid bent het hele bestand in een enkele request over te sturen (wat bijvoorbeeld met FTP niet per se hoeft).

Je kunt in PHP de limiet voor de bestandsgrootte die geupload kan worden hoger instellen. Dat is niet ideaal, want je moet dan ofwel alle POST requests afschermen, of je hebt kans op een DoS attack door mensen die voor de lol grote bestanden gaan zitten uploaden.

Misschien nog wel het beste idee is om het uploaden via CGI af te handelen. Een CGI script zou het bestand dan op een tijdelijke locatie kunnen zetten (net zoals PHP dat doet) en vervolgens redirecten naar een PHP script dat het bestand daadwerkelijk verwerkt of verplaatst. (Daar zitten wel allerlei haken en ogen aan met betrekking to file ownership, maar dat heb je in PHP zelf ook.)

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 19:09
Voor het uploaden van grote bestanden zou je verder kunnen bouwen op code die ik een keer als experiment heb gemaakt. Zie [rml]Sjaaky in "[ php] Bestanden Upload Progress Indicator"[/rml]. Omdat het php script zelf direct de post afhandelt omzeil je de max post size en max upload size van apache en php. Bovendien kan je de gebruiker een indicatie van de voortgang geven. Het script was voor mij een geslaagd experiment, maar nog lang klaar voor productie. Zo ondersteunt het bijv maar 1 upload connectie (per server) en er zullen vast nog genoeg bugs in zitten.
Het nadeel van http is wel dat je niet kunt resumen en alles dus in 1 maal goed moet gaan. Bij ftp kun je uploads wel resumen. Meestal een kwestie van de manual van de ftpserver lezen.

edit: overigens, mensen die databases en logfiles moeten kunnen uploaden klinken mij niet direct als de gemiddelde pc misbruikers in de oren. Die moet je toch wel aan de ftp kunnen krijgen?

[ Voor 13% gewijzigd door Sjaaky op 23-12-2004 23:23 ]

Pagina: 1