Beste GoTers,
Ik ben niet zo'n beste php scripter en het kan dus goed zijn dat ik een simpele, stomme fout heb gemaakt, maar ik hoop dat jullie mij toch verder willen helpen.
Ik heb een php site draaien met een ftp server er achter waar ik word, powerpoint, pdf en fotobestanden op serveer. Deze files deel ik nu met m'n medestudenten door de bestanden via een internet pagina aan te bieden. Voor het downloaden van de bestanden heb ik tot nu toe altijd de ftp_wrapper gebruikt (ftp://user:pass@host:port/path/to/file), maar ik vind het vervelend dat alle gegevens zo op straat worden gegooid. Bovendien openen de meeste browsers de plaatjes in het venster, ipv dat ze gedownload worden.
Ik heb de wrapper dus vervangen door een link naar een php pagina (welke uiteindelijk een zonder html & body tags moet worden, zodat hij nooit in de browser wordt geopend) welke de bestanden middels ftp_get op de client moet zetten. Dit is wat ik ervan heb gemaakt:
Ik kan de file wel downloaden met de fallback link. De pagina maakt correct contact met de FTP server, de server is pasv enabled en retr staat expliciet als toegestaan in proftpd.conf. Downloaden van de files middels flashfxp is ook gewoon mogelijk
Ik heb ook FTP_BINARY gebruikt, maar dat geeft precies de zelfde foutmelding.
Verdere info:
Apache/php versie is "Apache/2.0.40 (Red Hat Linux) mod_perl/1.99_07-dev Perl/v5.8.0 PHP/4.2.2 mod_ssl/2.0.40 OpenSSL/0.9.7a DAV/2"
proftp versie is 1.2.8p
De server zit achter een Thomson 510i (nat), porten 80, ftp en een pasvftp range worden naar de server geforward, de server heeft intern ip 10.0.0.x (statisch) en draait geen firewall.
Mijn vragen zijn:
wat betekent die foutmelding precies, waar zit de fout (bij de ftp configuratie, bij apache, in mijn php code, in mijn hoofd
) en wat zouden jullie proberen?
Alvast bedankt voor alle sugesties!
Ik ben niet zo'n beste php scripter en het kan dus goed zijn dat ik een simpele, stomme fout heb gemaakt, maar ik hoop dat jullie mij toch verder willen helpen.
Ik heb een php site draaien met een ftp server er achter waar ik word, powerpoint, pdf en fotobestanden op serveer. Deze files deel ik nu met m'n medestudenten door de bestanden via een internet pagina aan te bieden. Voor het downloaden van de bestanden heb ik tot nu toe altijd de ftp_wrapper gebruikt (ftp://user:pass@host:port/path/to/file), maar ik vind het vervelend dat alle gegevens zo op straat worden gegooid. Bovendien openen de meeste browsers de plaatjes in het venster, ipv dat ze gedownload worden.
Ik heb de wrapper dus vervangen door een link naar een php pagina (welke uiteindelijk een zonder html & body tags moet worden, zodat hij nooit in de browser wordt geopend) welke de bestanden middels ftp_get op de client moet zetten. Dit is wat ik ervan heb gemaakt:
code:
De pagina doet in principe wat ik wil (de fallback ftp_wrapper geeft de juiste link door, dus alle variabelen worden goed doorgegeven), maar op de ftp_get constructie loopt het vast:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| html><body> <?php /* url to be used get.php?&jaar=&blok=&file= */ // Set variables $host = "10.0.0.100"; $port = "21"; $user = "user"; $pass = "password"; // Get variables $jaar = $_GET["jaar"]; $blok = $_GET["blok"]; $file = $_GET["file"]; // Combined variables $local_file ="$file"; $serv_File = "downloads/students/$jaar/$blok/$file"; /* ftp_connect && ftp_login contructie (functioneert naar behoren) */ // Download file if (ftp_get($connect, $local_file, $serv_file, FTP_ASCII)){ echo "Saving $file to $local_file..."; }else{ echo "Click here if your download does not start immediately<br /> <a href='ftp://user:password@ocs.pointclark.net:21/downloads/students/$jaar/$blok/$file'>$file</a>"; } // Close the connection ftp_close($connect); ?> </body></html> |
regel 30 isWarning: ftp_get: 'RETR' not understood in /var/www/html/get.php on line 30
Click here if your download does not start immediately
urlnaarfile
code:
1
| if (ftp_get($connect, $local_file, $serv_file, FTP_ASCII)){ |
Ik kan de file wel downloaden met de fallback link. De pagina maakt correct contact met de FTP server, de server is pasv enabled en retr staat expliciet als toegestaan in proftpd.conf. Downloaden van de files middels flashfxp is ook gewoon mogelijk
.RETR Blah.doc
150 Opening BINARY mode data connection for Blah.doc (31337 bytes)
Ik heb ook FTP_BINARY gebruikt, maar dat geeft precies de zelfde foutmelding.
Verdere info:
Apache/php versie is "Apache/2.0.40 (Red Hat Linux) mod_perl/1.99_07-dev Perl/v5.8.0 PHP/4.2.2 mod_ssl/2.0.40 OpenSSL/0.9.7a DAV/2"
proftp versie is 1.2.8p
De server zit achter een Thomson 510i (nat), porten 80, ftp en een pasvftp range worden naar de server geforward, de server heeft intern ip 10.0.0.x (statisch) en draait geen firewall.
Mijn vragen zijn:
wat betekent die foutmelding precies, waar zit de fout (bij de ftp configuratie, bij apache, in mijn php code, in mijn hoofd
Alvast bedankt voor alle sugesties!
Oceria doesn't know where this repeatbutton -repeatbutton is...