Page 1 of 1

Ftp di Internet explorer

Posted: Mon Jun 25, 2007 8:18 am
by Marco Turco
Salve,
fino ad ora ho utilizzato la classe ftp di Fivewin leggermente modificata in modo da avere una barra di progressione dello stato di avanzamento trasmissione e non ho mai avuto problemi.

Ad un cliente mi si presenta però un problema di crash nella trasmissione di files piuttosto grandi (circa 15MB). Credo il problema dipenda dalla qualità dell'Adsl visto che lo stesso file da me viene trasmesso.

Vorrei sapere se è possibile utilizzare un ftp alternativo per fare una prova e pensavo all'ftp di explorer.

Come faccio a chiamare da fivewin il classico ftp di explorer ("ftp://.....") e passargli i file di origine, destinazione, userid e password ?

Grazie in anticipo

Saluti

Marco

Posted: Mon Jun 25, 2007 8:30 am
by pymsoft
Marco,

penso che puoi fare tutto, meno indicare la destinazione (io non so come farlo)


ftp://utente:password@iltuoip/iltuofile


Saluti

Posted: Mon Jun 25, 2007 9:32 am
by chiaiese
Ciao,
puoi creare un file .bat e lanciarlo da riga comando con winexec() o waitrun()
ad es:

Code: Select all

ftp -s:myftpjob -i -d myftpserver.it
pause
dove myftpjob contiene:

Code: Select all

myusername
mypassword
send myfile.zip
quit
saluti a tutti
Roberto Chiaiese

Re: Ftp di Internet explorer

Posted: Mon Jun 25, 2007 9:32 am
by Enrico Maria Giordano
Per prima cosa prova con Filezilla e vedi se lo stesso file viene trasmesso regolarmente dal tuo cliente.

EMG

Posted: Mon Jun 25, 2007 9:33 am
by Enrico Maria Giordano
Sì, anche con il comando FTP puoi testare se dal tuo cliente va tutto bene. Se riesci ad inviare regolarmente con FTP o con Filezilla (magari prova con entrambi per sicurezza) allora il problema dev'essere nel programma.

EMG

Posted: Wed Jun 27, 2007 8:46 am
by Marco Turco
Grazie, entrambe i sistemi non permettono però di avere una barra di progressione che mostra lo stato di avanzamento dell'upload o sbaglio ?

Posted: Wed Jun 27, 2007 9:18 am
by chiaiese
Con il comando FTP sicuramente no, ma avevo capito che ti servisse qualcosa per fare dei test.
In ogni caso io uso questo metodo anche in applicazioni reali perchè (per ora) è quello che mi ha dato maggiore affidabilità trasferendo senza problemi file anche da 30-40MB, i file batch che mi servono li creo al volo da FW e poi eseguo il comando.
Forse meno elegante ma più sicuro :wink:

ciao
Roberto

Posted: Wed Jun 27, 2007 9:39 am
by Marco Turco
>Forse meno elegante ma più sicuro

Su questo hai ragione, utilizzavo anch'io il tuo sistema e non ho mai avuto problemi, tuttavia la banda di progressione mi serve assolutamente.

Posted: Wed Jun 27, 2007 1:03 pm
by Maurizio
Io uso

Code: Select all

   for n = 1 to Len( aSource )
      hSource = FOpen( aSource[ n ] )
      oFile = TFtpFile():New( aTarget[ n ], oFTP )
      oFile:OpenWrite()
	   oSay:SetText("Copia:" + aSource[ n ] +  " in  "  + aTarget[ n ])
      oProg3:SetRange( 0,  FSeek( hSource, 0, 2 ))
      oProg3:SetPos( 0 )
      FSeek( hSource, 0, 0 )
      nFile := 0
      SysRefresh()
      while ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0  .and. ! lEnd
         oFile:Write( SubStr( cBuffer, 1, nBytes ) )
         oProg3:SetPos( nFile += nBytes )
			nTotal += nBytes
         SysRefresh()
      end
      FClose( hSource )
      oFile:End()
      if lEnd
        exit
      endif

		AddoLbx("Trasferimento file:" + aSource[ n ] + " completata " )
   next