Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [BATCH] Inviare più file via ftp

    Ciao a tutti, sto tentando di creare un piccolo file .bat che invii tutte le immagini con estensione .png ad un ftp hostato su altervista, ho trovato molta documentazione sul forum, e sono riuscito a creare lo script con facilità. Mi si pone però il problema che non riesco ad uploadare tutti i file, ovvero alcuni vengono inviati e poi risultano di 0kb, non riesco proprio a capire dove sbaglio.

    Premetto che sono su w7, connnesso a fastweb ed i file da inviare sarebbero circa 500 da 45 kb ciascuno (ho provato anche con meno file ma non va comunque)

    ho utilizzato il procedimento di creare uno script.ftp e poi lanciare il comando
    codice:
    ftp -s:%script.ftp%
    Lo script.ftp viene creato come:

    codice:
    @set SCRIPT_NAME=C:\Grafici\upload\script.ftp
    
    @echo open newsflowprova.altervista.org> %SCRIPT_NAME%
    @echo newsflowprova>> %SCRIPT_NAME%
    @echo PASSWORD>> %SCRIPT_NAME%
    @echo bin>> %SCRIPT_NAME%
    
    @for %%f in (C:\Grafici\upload\*.png) do @echo put %%f>> %SCRIPT_NAME%
    Questo è quello che esce una volta lanciato il .bat:

    codice:
    C:\Grafici>ftp -s:%SCRIPT_NAME%
    ftp> open newsflowprova.altervista.org
    Connesso a newsflowprova.altervista.org.
    220---------- AlterVista FTP ----------
    220-Sei l'utente numero   di 120 consentiti
    220-L'ora locale Þ 17:08. Porta del server: 21.
    220-Questo Þ un sistema privato - Nessun login anonimo
    220 Sarai disconnesso dopo 5 minuti di inattivitÓ.
    Utente (newsflowprova.altervista.org:(none)):
    331 Utente newsflowprova OK. Richiesta password
    
    230-La velocitÓ di download via FTP Þ limitata, usa il browser se devi fare il d
    ownload di files molto grandi
    230-L'utente newsflowprova ha accesso di gruppo:  membri
    230 OK. La directory limitata corrente Þ /
    ftp> bin
    200 TYPE Þ ora 8-bit binary
    ftp> put C:\Grafici\upload\a.png
    200 Comando PORT eseguito con successo
    150 Mi sto collegando alla porta 65219
    226-File trasferito con successo
    226 2.011 secondi (misurati qui)
    ftp: 45812 bytes sent in 0,55secondi 82,69Kbyte/sec)
    ftp> put C:\Grafici\upload\a4.png
    200 Comando PORT eseguito con successo
    500 ?
    ftp> put C:\Grafici\upload\a9.png
    150 Mi sto collegando alla porta 65220
    ftp> put C:\Grafici\upload\al.png
    500 Comando sconosciuto
    226-Errore durante la lettura dalla connessione dati
    226 Trasferimento annullato
    200 Comando PORT eseguito con successo
    da filezilla:


    Penso che il problema sia legato alla porta che utilizza quando fa l'upload (non parlo della 21 che usa quando si connette, ma ad esempio alla 65220).

    Spero qualcuno riesca ad aiutarmi.
    Un saluto.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Prova ad usare un solo comando

    mput *.png

    al posto della for con tutti i put
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Grazie della risposta !

    Ho provato ma arrivo allo stesso risultato !

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Prova ad inviare prima il comando

    PASV

    per passare in modalità FTP passive.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Grazie mille sei stato gentilissimo, era proprio quello il problema. Il codice completo, se a qualcuno servirà in futuro è:

    codice:
    @REM = Set the name of our temp script =
    
    @set SCRIPT_NAME=C:\path\FTP_SCRIPT.FTP
    
    @REM = Generate our FTP Script
    @echo open HOST> %SCRIPT_NAME%
    @echo USERNAME>> %SCRIPT_NAME%
    @echo PASSWORD>> %SCRIPT_NAME%
    @echo bin>> %SCRIPT_NAME%
    @echo hash>> %SCRIPT_NAME%
    @echo PASV>> %SCRIPT_NAME%
    
    @REM = Loop through each file that matches our wildcard
    
    @for %%f in (C:\path\*.png) do @echo put %%f>> %SCRIPT_NAME%
    
    @echo quit>> %SCRIPT_NAME%
    
    @REM = Now call FTP with our generated script
    @ftp -s:%SCRIPT_NAME%
    
    @REM = Delete our temp script file and we are done
    @del %SCRIPT_NAME% /q
    Un saluto !

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Prego ... il fatto è che anche io uso fastw... e, come saprai, i sistemi che lo usano sono praticamente all'interno di una rete privata, non esposta su Internet. E' quindi problematico "l'ascolto" di un sistema su una porta (in pratica è impossibile usare il sistema come server).

    La modalità FTP "attiva" si aspetta che il client sia contattato dal server remoto - come se il client fosse a sua volta un server - e questo non è possibile.
    La modalità FTP "passiva" fa lavorare il client solo come "client" e non presenta i problemi che ti ho detto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.