Ik wil mensen via een webpage files kunnen laten downloaden vanaf een ftp server. Deze constructie is omdat het bedoeld is voor retards die geen ftp programma's snappen, en hen directe ftp:// url's geven kan niet omdat de ftp verbinding met passive mode moet (die ftp server zit achter een router).
Nu dacht ik, dat doen we even met een PHP scriptje dat die file van die ftp haalt en output: (voor de eenvoud heb ik alle error-checking en shit even achterwege gelaten)
Is er in PHP een soort file handle die naar de http output wijst? Dus dat ik ftp_get daarheen kan laten schrijven, en zo direct de data naar de bezoeker stuur?
Of is hier een andere oplossing voor?
Nu dacht ik, dat doen we even met een PHP scriptje dat die file van die ftp haalt en output: (voor de eenvoud heb ik alle error-checking en shit even achterwege gelaten)
PHP:
Het probleem zit hem in die 2e parameter van ftp_get, de output handle. Ik kan niet de file van ftp naar een tempfile op de server (waar dit script draait) downloaden, en dan met readfile de inhoud daarvan outputten, want het gaat om nogal grote bestanden (d.w.z. meer dan 50MB terwijl ik hier maar 50MB webspace heb). 1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php $fileName = $_GET["file"]; $connection = ftp_connect("**FTPSERVER**",23558/*port*/); ftp_login($connection,"**USERNAME**","**PASSWORD**")); ftp_pasv($connection,true); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=".fileName.";"); header("Content-Transfer-Encoding: binary"); $fileSize = ftp_size($connection,$fileName); header("Content-Length: ".$fileSize); ftp_get($connection,??TJA_WAT_MOET_HIER??,$fileName,FTP_BINARY); ftp_close($connection); ?> |
Is er in PHP een soort file handle die naar de http output wijst? Dus dat ik ftp_get daarheen kan laten schrijven, en zo direct de data naar de bezoeker stuur?
Of is hier een andere oplossing voor?