Toon posts:

[php] [ftp] vreemde error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey,
ik heb een probleem met een scriptje dat ik aan het schrijven ben. Wat zou het moeten doen: een bestandje downloaden van een ftp server. Wat doet het: hij geeft een error, namelijk deze:
code:
1
Warning: Unable to find ftpbuf 0 in c:\pad\naar\htdocs\functions.php on line 32

Daar zit deze functie:
PHP:
1
<?function downloadFile($source_file){#bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode)echo "$conn_id<br>$source_file<br>";ftp_get ( $conn_id, "/www/pad/naar/upload/dir/".$source_file, "c:\documents and settings\administrator\desktop\\".$source_file, FTP_BINARY );}?>

Die functie wordt aangeroepen vanuit dit bestand:
PHP:
1
<?include 'functions.php';$ftp_server =       'ftp.blaat.nl';$ftp_user_name =    'username';$ftp_user_pass =    'pass';// set up basic connection$conn_id = ftp_connect($ftp_server); // login with username and password$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // check connectionif ((!$conn_id) || (!$login_result)) {         echo "Ftp connection has failed!";        echo "Attempted to connect to $ftp_server for user $ftp_user_name";         die;     } else {        echo "Connected to $ftp_server, for user $ftp_user_name<br><br>";    }if ( $a == 'download' )    { downloadFile($source_file); }?>

Ik heb deze error eerder gehad, ook met een ftp functie, was iig geen ftp_get() maar waarom krijg ik em? Hij moet toch gewoon het bestand downloaden naar mijn desktop?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

ten eerste mogen er wel wat meer slashes in je strings. Waneer je een \ moet staan moet je \\ neerzetten om aan te geven dat het werkelijk om ene \ gaat. Dit heb je alleen aan het eind gedaan omdat het dfaar mis ging, maar het kan ook misgaan waneer een dir met een n, r, t enz begint.

Wat waarschijnlijk de fout in dit script is is dat $conn_id binnen de scope van de functie niet bekend is. Dit is op te lossen door deze mee te geven als functie argument, of door GLOBAL $conn_id aan het begin van de functie neer te zetten.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
bedankt voor je tips, ben er niet precies uit waar de fout zat maar hij werkt nu (bijna). waarom bijna: hij zegt dat het lokale pad dat ik opgeef niet bestaat, zelfs als ik het zo doe:
PHP:
1
<?ftp_get ( $conn_id, "/www/site/upload/".$source_file, "C:\\".$source_file, FTP_BINARY );?>

moet ik hem anders opgeven? als file:/// of zo?

Verwijderd

Topicstarter
anyone?

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
ff resumeren:
code:
1
Warning: Unable to find ftpbuf 0 in c:\pad\naar\htdocs\functions.php on line 32

Oftewel, hieruit leid ik af dat je op een windows-machine werkt.

Je geeft zelf al aan:
PHP:
1
<?ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode)?>

Let op de volgorde van local_file en remote_file.

Nu gebruik jij:
PHP:
1
<?ftp_get ( $conn_id, "/www/site/upload/".$source_file, "C:\\".$source_file, FTP_BINARY );?>

En er wordt een foutmelding gegeven, dat het lokale pad niet gevonden kan worden...

Nou is local_file dus "/www/site/upload/".$source_file

Dat in mijn ogen geen windows-pad. :? Dus misschien dat je het eens kan omdraaien.

Verwijderd

Wat staat er in $source_file?

Wil je iets downloaden van ftp.blaat.nl c:\documents and settings\administrator\desktop\\ ofzo :?

En wegschrijven in /www/pad/naar/upload/dir/ :?
Volgens mij draai je de boel om.

Verwijderd

Topicstarter
Op dinsdag 07 mei 2002 22:31 schreef MarcoTC het volgende:
Wat staat er in $source_file?

Wil je iets downloaden van ftp.blaat.nl c:\documents and settings\administrator\desktop\\ ofzo :?

En wegschrijven in /www/pad/naar/upload/dir/ :?
Volgens mij draai je de boel om.
$source_file is de bestandnaam, e.g. virus.exe :P
en wat draai ik om dan? ik wil een bestand dat ergens online staat (e.g. http://site.ext/files/virus.exe downloaden naar een lokaal adres, e.g. c:\virus.exe)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Kijk Kijk dan nog eens goed naar wat RdeTuinman tikt... Vooral waar local file en waar remote file staat :).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1