login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bestanden downloaden via script naar FTP

Offline filleke - 16/10/2012 13:31
Avatar van fillekeHTML beginner Via een reeds bestaand script wordt een DB-tabel gevuld met allemaal links naar zipfiles op een externe server.

Het is nu de bedoeling dat het nieuwe script de tabel gaat doorlopen en alle zipfiles gaat downloaden en opslaan op onze eigen FTP server. Dit script gaat volledig server-side draaien dus er komt helemaal geen actie van een gebruiker aan te pas.

De grootte van de bestanden varieert. Kan om erg kleine bestanden gaan maar er zijn ook bestanden mogelijk van meer dan 100MB.

Ik weet dat er verschillende mogelijkheden bestaan om de bestanden te downloaden. Kan dit best via CURL of toch via readfile()?
Maar wat is nu de beste en veiligste manier om enerzijds de externe server niet te overbelasten en anderzijds zeker te zijn dat de bestanden volledig worden gedownload?

4 antwoorden

Gesponsorde links
Offline marten - 16/10/2012 15:20
Avatar van marten Beheerder Beste lijkt mij op gezette tijden een cURL request uitvoeren om te op te halen.
Offline Martijn2008 - 16/10/2012 16:57 (laatste wijziging 16/10/2012 17:13)
Avatar van Martijn2008 PHP beginner Ik denk dat je zulke grote bestanden het best serverside kunt ophalen door middel van een cronjob. Die cronjob voer je dan bijvoorbeeld dagelijks 's nachts om 1 uur uit. Het is een beetje afhankelijk van het besturingssysteem van de server waarnaar je bestanden wilt downloaden. Draait die op Windows of Linux? Aan de hand daarvan zou je een mogelijke oplossing kunnen kiezen in de vorm van een programmeertaal.

Volgens mij is curl prima geschikt voor het ophalen van kleine bestanden, echter denk ik niet dat het bedoelt is voor het ophalen van bestanden van 100MB.
Offline Martijn - 16/10/2012 18:12
Avatar van Martijn Crew PHP $file = file_get_contents(), mits je serverinstellingen remote addresses toestaan (maar daar kom je vlot genoeg achter is ook genoeg over te vinden hoe je dat aankrijgt)
en dan kun je $file met file_put_contents() wegschrijven naar waar je wilt.

mogelijk dat de copy functie van php dit ook kan, zou een regeltje code schelen. Wat ook misschien een optie is, is het via een stream openen, maar daar heb ik geen kennis van.


LET OP! Maximum execution time van php gaat wel gehaald worden bij 100MB, dus die moet je verhogen. Ik weet niet hoe ver je commandline skills zijn, anders zou je nog phptjes in de achtergrond kunnen gaan draaien via iets als shell_exec(), dan kun je dr ook meerdere tegelijk laten lopen (maar 2 download is 1/2e snelheid uiteraard)
Offline Joost - 17/10/2012 13:27
Avatar van Joost PHP expert Een suggestie, geen flauw idee of het sneller of stabieler is, maar het is er in ieder geval voor bedoeld: gebruik maken van de PHP FTP functies. Zie http://php.net/manual/en/book.ftp.php
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s