Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66

    [php] problema con ftp_get()

    Ciao a tutti,
    ho l'esigenza di leggere il contenuto di un file raggiungibile solo tramite ftp.

    eseguo la connessione senza problemi:

    Codice PHP:
    $ftpstream ftp_connect('indirizzo ftp') or die ('errore'
    Codice PHP:
    $login ftp_login($ftpstream'user''pw') or die ('Errore nel login ftp '); 
    Sono correttamente collegato, creo un file locale sul quale copiare il contenuto del file remoto

    Codice PHP:
    $local fopen("local.xml","w"); 
    ora provo a salvare il contenuto del file remoto su quello locale appena creato:

    Codice PHP:
    $result ftp_get($ftpstream$local,"cartella/fileremoto.xml"FTP_ASCII); 
    Ora, l'errore che stampa a video è il seguente:

    codice:
     ftp_get() expects parameter 2 to be string, resource given in ... /index.php

    Avete idee su come risolvere o aggirare il problema??

  2. #2
    Il problema è che la funzione ftp_get() si aspetta che il secondo paramentro sia una stringa, te lo dice anche nell'errore, controlla bene il manuale:
    http://php.net/manual/en/function.ftp-get.php

    ovviamente il secondo parametro si riferisce al file di destinazione, che deve essere il percorso.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    quindi dovrei in pratica fare un passaggio in più?

    ovvero:

    Codice PHP:
    $nomefile 'local.xml'
    Codice PHP:
    $file fopen($nomefile,"w"); 
    Codice PHP:
    ftp_fget($ftpstream$nomefile,"cartella/fileremoto.xml"FTP_ASCII); 
    essendo $nomefile comunque una stringa con il nome del file.

  4. #4
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    dato che mi serve mettere il contenuto del file remoto su un file aperto, utilizzo ftp_fget().

    Settando i parametri correttamente, mi da l'errore riguardo alla connessione:

    codice:
    ftp_fget() [function.ftp-fget]: Failed to establish connection.
    Però la connessione è già in corso e stabilita dato che non ricevo nessun errore al riguardo quado effettuo la connessione.

    Riposto il codice qui:

    codice:
    $ftpstream = ftp_connect('ftp.sitoremoto.com') or die ('Errore nella connessione');
    $login = ftp_login($ftpstream, 'user', 'pw') or die ('Errore nel login ftp ');
    if($login) {
     //We are now connected to FTP server. 
    echo 'Connesso con il Server eCircle!!
    '; 
    // get the file 
    $localfile = 'local.xml'; 
    $local = fopen($localfile,"w"); 
    $result = ftp_fget($ftpstream, $local, "cartella/file.xml", FTP_ASCII); 
    if ($result){ 
    echo 'Trasferimento in locale completato !! 
    '; 
    } else { 
    echo 'Trasferimento in locale Fallitos !! 
    '; 
    } 
    } //Close FTP connection 
    ftp_close($ftpstream);
    suggerimenti?

  5. #5
    Il problema credo sia che continui a passare come file locale un flusso e non il percorso del file.

    Prova in questo modo:

    Codice PHP:
    $ftpstream ftp_connect('ftp.sitoremoto.com') or die ('Errore nella connessione');
    $login ftp_login($ftpstream'user''pw') or die ('Errore nel login ftp ');
    if(
    $login) {
     
    //We are now connected to FTP server. 
    echo 'Connesso con il Server eCircle!!
    '

    // get the file 
    $localfile 'local.xml'

    $result ftp_fget($ftpstream$localfile"cartella/file.xml"FTP_ASCII); 

    if (
    $result){ 
    echo 
    'Trasferimento in locale completato !! 
    '

    } else { 
    echo 
    'Trasferimento in locale Fallitos !! 
    '


    //Close FTP connection 
    ftp_close($ftpstream); 
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  6. #6
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    purtroppo continua a segnalarmi errore:

    codice:
    ftp_fget() expects parameter 2 to be resource, string given in
    Sinceramente non riesco a saltarci fuori.


    Anche se metto direttamente il nome del file come stringa all'interno della funzione

    codice:
    ftp_fget($conn, 'nomefile.xml', 'fileremoto.xml', FTP_ASCII);

  7. #7
    Prova il seguente codice, io l'ho procato e funziona:

    Codice PHP:
    $local_file "";
    $server_file "";
    $ftp_server "";
    $ftp_user_name "";
    $ftp_user_pass "";
    $conn_id ftp_connect($ftp_server);

    $login_result ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

    if (
    ftp_get($conn_id,$local_file,$server_file,FTP_ASCII)) {
        echo 
    'Trasferimento in locale completato !! 
    '
    ;
    } else {
        echo 
    'Trasferimento in locale Fallitos !! 
    '
    ;
    }

    ftp_close($conn_id); 
    ovviamente devi valorizzare:
    $local_file
    $server_file
    $ftp_server
    $ftp_user_name
    $ftp_user_pass
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  8. #8
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    Provo subito e ti riscrivo....

  9. #9
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    Forse ho risolto il problema...
    e gli scipr fatti fin ora andavano bene tutti!!!!


    Probabilmente l'errore derivava dal fatto che sulla cartella locale in cui salvavo i file non prendeva correttamente i permessi che gli associavo.

    Se ho altri problemi mi faccio vivo!!! Grazie per l'aiuto!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.