Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 34 di 34

Discussione: Problemi invio ftp

  1. #31
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,294

    Predefinito

    Ho scritto un codice PHP per testare la connessione e l'invio dati con FTP.

    L'ho testato oggi per qulache ora di fila, ad intervalli variabili, in locale verso un mio account AlterVista (su server diverso da quello di sacilemeteo) e nel mio caso (testato con Wind), non ho riscontrato problemi di alcun tipo.

    Eeventualmente, se non è un problema, potrebbe fare qualche prova con sim Wind e gli stessi dispositivi usati per le webcam e per eventuali test?

    Cdice di test FTP:
    Codice PHP:
    <?php
    set_time_limit
    (300); // Per test

    $ftp_server = "ftp.NomeUtente.altervista.org";
    $ftp_user_name = "NomeUtente";
    $ftp_user_pass = "PasswordUtente";
    $path='/';

    // Crea file in locale per test di upload FTP
    $file = 'ftptest.txt';
    if(!
    file_exists($file)){
    $f = fopen($file, 'wb');
    if(!
    $f){
    echo
    "Error creating the file " . $filename;
    }
    }
    $fp = fopen($file, 'r');

    function
    Ping($url){
    $startTime = microtime(true);
    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    $output = curl_exec($ch);
    $endTime = microtime(true);

    if(
    curl_errno($ch)){
    echo
    "cURL error: " . curl_error($ch) . "<br><br>";
    }else{
    $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if(
    $statusCode === 200){
    $duration = $endTime - $startTime;
    echo
    "time: " . $duration . " seconds <br><br>";
    } else {
    echo
    "Server response error with status code: " . $statusCode . "<br><br>";
    }
    }
    curl_close($ch);
    }

    // Inizializza e testa la connessione
    // $ftp = ftp_ssl_connect($ftp_server) or die("Couldn't connect to $ftp_server"); // FTP con SSL
    $ftp = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

    $info = ftp_systype($ftp);
    echo
    "Server: $info <br><br>";

    $mode = ftp_pasv($ftp, true);
    if(!
    $mode){
    echo
    "Cannot switch to passive mode <br><br>";
    }

    // Effettua login
    if(ftp_login($ftp, $ftp_user_name, $ftp_user_pass)){
    echo
    "Connected as $ftp_user_name@$ftp_server <br><br>";

    echo
    "Connession "; Ping(str_replace("ftp.", "", $ftp_server));

    $upload = ftp_fput($ftp, $file, $fp, FTP_ASCII);
    if(!
    $upload){
    echo
    "Cannot send a file <br><br>";
    }

    // Recupera i conteuti
    $contents = ftp_nlist($ftp, $path);
    //var_dump($contents); // debug
    foreach($contents as $item){
    $date = ftp_mdtm($ftp, $item);
    if(
    $item == $path.$file){
    echo
    "<b>$item -------------------- " . date("d-m-Y H:i:s", $date) . "</b><br>";
    }else{
    echo
    "$item -------------------- " . date("d-m-Y H:i:s", $date) . "<br>";
    }
    }
    //$contents = ftp_rawlist($ftp, '/'); // debug
    //var_dump($contents);
    }else{
    echo
    "Couldn't connect as $ftp_user_name";
    }

    // Chiusura della connessione
    ftp_close($ftp);
    fclose($fp);
    ?>
    Cordiali sluti.

  2. #32
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Per quel codice occorre però avere l'interprete PHP installato.

    Ipotizzando di usare Windows, ho fatto (generare dall'IA ) uno script .bat per questo test: è sufficiente salvarlo in un file .bat e lanciarlo, dopo aver modificato i parametri: "tuonome", "password". Scrive sul server dentro la cartella REMOTE_DIR=/serverTemp

    Codice:
    @echo off
    setlocal enabledelayedexpansion
    
    :: Impostazioni FTP
    set SERVER=ftp.tuonome.altervista.org
    set USERNAME=tuonome
    set PASSWORD=password
    set REMOTE_DIR=/serverTemp
    
    :: Impostazioni test
    set INTERVAL=60
    set MAX_ATTEMPTS=10
    
    :: Directory locale per i file di test (percorso relativo)
    set LOCAL_TEST_DIR=.\tmp
    
    :: Crea directory se non esiste
    if not exist "%LOCAL_TEST_DIR%" mkdir "%LOCAL_TEST_DIR%"
    
    :main_loop
    set ATTEMPT=1
    
    :retry_loop
    :: Genera file di test
    for /l %%i in (1,1,5) do (
        echo Test file number %%i - %date% %time% > "%LOCAL_TEST_DIR%\test_file_%%i.txt"
    )
    
    :: Crea script FTP
    (
        echo open %SERVER%
        echo %USERNAME%
        echo %PASSWORD%
        echo binary
        echo cd %REMOTE_DIR%
        
        :: Ciclo per caricare tutti i file
        for %%F in ("%LOCAL_TEST_DIR%\*.txt") do (
            echo put "%%F"
        )
        
        echo quit
    ) > ftpscript.txt
    
    :: Esegui upload
    ftp -s:ftpscript.txt
    
    :: Controlla risultato
    if %ERRORLEVEL% NEQ 0 (
        echo Tentativo !ATTEMPT! fallito.
        
        if !ATTEMPT! GEQ %MAX_ATTEMPTS% (
            echo Numero massimo di tentativi raggiunto. Interruzione.
            exit /b 1
        )
        
        set /a ATTEMPT+=1
        echo Attesa di %INTERVAL% secondi prima del prossimo tentativo...
        timeout /t %INTERVAL% /nobreak > nul
        goto :retry_loop
    )
    
    :periodic_test
    echo Test iniziale riuscito. Inizio test periodici.
    
    :loop
    :: Genera nuovi file di test
    for /l %%i in (1,1,5) do (
        echo Test file number %%i - %date% %time% > "%LOCAL_TEST_DIR%\test_file_%%i.txt"
    )
    
    :: Crea nuovo script FTP
    (
        echo open %SERVER%
        echo %USERNAME%
        echo %PASSWORD%
        echo binary
        echo cd %REMOTE_DIR%
        
        :: Ciclo per caricare tutti i file
        for %%F in ("%LOCAL_TEST_DIR%\*.txt") do (
            echo put "%%F"
        )
        
        echo quit
    ) > ftpscript.txt
    
    :: Esegui upload
    ftp -s:ftpscript.txt
    
    :: Controlla risultato
    if %ERRORLEVEL% NEQ 0 (
        echo Errore rilevato durante il test periodico. Interruzione.
        exit /b 1
    )
    
    echo Test riuscito. Attesa di %INTERVAL% secondi.
    timeout /t %INTERVAL% /nobreak > nul
    goto :loop
    Ciao!
    Ultima modifica di alemoppo : 11-12-2024 alle ore 20.25.33

  3. #33
    L'avatar di sacilemeteo
    sacilemeteo non è connesso Utente giovane
    Data registrazione
    30-08-2008
    Messaggi
    68

    Predefinito

    Da circa mezzanotte sembra che tutti i problemi si siano risolti
    Tutte le 4 webcam , nessuna immagine persa, e pc torna a funzionare come prima di fine novembre.
    Il dubbio rimane
    Che è successo
    Chi ha risolto wind o altervista
    Grazie per il supporto e pazienza
    Ciao

  4. #34
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    AlterVista che io sappia non ha cambiato nulla.

    Ciao!

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •