Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    stranezza su file_exists, file presente ma valore di file_exists false

    ciao , non riesco a ricavarci un ragno dal buco.
    ho uno script che prende un file da un server e lo copia da un'altra parte.
    Questo script partirà ogni notte, e visto che ce la possibilità che non vengano inseriti file io vorrei scrivere un bel log che mi dica se il download è fallito o meno e se il file è stato trovato o meno...

    per fare ciò ho utilizzatofile_exists("nome_file") ; ma non so come mai ma anche se il file è presente lui mi dice che non ce...
    se tolgo file_existsfunziona alla grande.

    Codice PHP:

    $ftp_connessione 
    ftp_connect($ftp_server); 

    // effetto login sul server
    $login ftp_login($ftp_connessione$ftp_username$ftp_password); 

    // controllo se la connessione ha avuto buon fine
    if(!$ftp_connessione || !$login){$fpFTP fopen ($pathlog."".$FTP_connessione_log,$modalita);        
        
    $time substr($oggi04) . "/" substr($oggi42) . "/" substr($oggi62) . "  " .substr($oggi82) . ":" substr($oggi102) . ":" substr($oggi122);

        
    $messaggio "Errore di connessione FTP\r\n";
        
    $fw fwrite($fpFTP $messaggio);
        
    fclose($fpFTP);
        
    $object "Errore Connessione FTP su Server";
        
    $messaggio .="\r\n Impossibilità di connessione sul srver.";
        
    mail($destinatario $object $messaggio $intestazione);
    }else{
      
    //Effettuo il download 
        
    $file_da_scaricare "path/nome_file.estensione";
        
    $dove_scaricare "path/nome_file.estensione";
        
        if (
    file_exists($file_da_scaricare)){
        
        
    $download ftp_get($ftp_connessione$dove_scaricare$file_da_scaricareFTP_BINARY);
            
    // controllo se download andato a buon fine
        
    if (!$download) { 
            
    $fpFTP fopen ($pathlog."".$FTP_download_log,$modalita);        
        
    $time substr($oggi04) . "/" substr($oggi42) . "/" substr($oggi62) . "  " .substr($oggi82) . ":" substr($oggi102) . ":" substr($oggi122);
        
    $messaggio  "Errore di Download tramite FTP\r\n scrittura\r\n";
        
    $fw fwrite($fpFTP $messaggio);
        
    fclose($fpFTP);
        
    $object "download non effettuato database";
        
    mail($destinatario $object $messaggio $intestazione);
        }
    }else{
        
    $fpFTP fopen ($pathlog."".$FTP_connessione_log,$modalita);        
        
    $time substr($oggi04) . "/" substr($oggi42) . "/" substr($oggi62) . "  " .substr($oggi82) . ":" substr($oggi102) . ":" substr($oggi122);
        
    $messaggio ="$time\r\n Il file non era presente nella cartella\r\n***********************************\r\n\r\n";
        
    $fw fwrite($fpFTP $messaggio);
        
    fclose($fpFTP);
    }
        
    // chiudo connessione FTP 
        
    ftp_quit($ftp_connessione); 

    Qualcuno sa come posso fare?

  2. #2
    Semplice:Il download viene effettuato se il file esiste sul tuo server (non su quello al quale sei connesso via ftp), ma dato che il file non è ancora stato scaricato, è ovvio che non esista, se mai il controllo lo dovresti effettuare dopo il download, in modo da controllare se il file è effettivamnte stato scaricato.

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ok ,
    ma io effettuo il controllo sul file che voglio scaricare...
    se nella cartella che sto puntando nel server esiste il file allora scarica altrimeti scrivi il log.

    if (file_exists($file_da_scaricare)){

    file_da_scaricare è la path+nomefile nel server dove recupero il file!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    non puoi farlo.
    file_exists controlla se il file si trova nel file system in cui lo script viene eseguito. In questo caso, lui va a cercare nel file system del tuo server.
    Io ti consiglierei di usare ftp_nlist e poi andare a cercare il file con un in_array
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  5. #5
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ciao ... ho provato un po di possibilità.
    Sembrerebbe funzionare,
    Dopo la connessione ho detto di controllare il file (se esiste) nel server al quale mi sono collegato.
    Cosi facendo funziona.
    Almeno spero, oggi faccio qualche test e poi posterò la soluzione

    Grazie...ciao

  6. #6
    Controlla come va passato alla file_exists() il percorso al file da controllare.

    L'80% dei problemi con quella funzione è imputabile a errori di questo tipo: path assoluti, relativi, fisici, virtuali, con o senza slash, etc.

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.