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

    [DELPHI] ftp indy 10.5 7 upload file - file corrotto

    Salve, io ho un problema con l'upload di file mdb su un server ftp con i componenti indy.
    Praticamente io connetto correttamente ( eseguo sia il size che il download correttamente)
    ma quando eseguo l'upload il file che carico risulta corrotto e impossibile da utilizzare ( ho provato anche con file immagine. Ho già provato con connessioni passive... È mai successo a qualcuno? C'è una soluzione??

    Grazie

    Ciao

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Posta il codice.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    codice:
    procedure TfrmMain.DownloadFile; 
    var i : Integer; ext, s, destinazione : String; b : boolean; remoto, locale : string; 
    begin 
    if (FTP.Connected = True) then 
    begin 
    FTP.Disconnect;
    end; 
    frmMain.FTP.Host := Configurazione.Nome_Server; 
    frmMain.FTP.Username := Configurazione.Nome_Utente; 
    frmMain.FTP.Password := Configurazione.Password; 
    frmMain.FTP.Connect; 
    // Se la cartella TMP non esiste la Creo 
    if not(DirectoryExists('TMP')) then 
    begin 
    CreateDir('TMP');
    end; 
    // Ordino il file e lo metto nella cartella TMP
    if FileExists('TMP\tmp.mdb') then 
    begin 
    DeleteFile('TMP\tmp.mdb'); 
    end; 
    Configurazione1.Indirizzo_db_copiato := 'TMP\tmp.mdb';
    Configurazione1.Indirizzo_db := Configurazione.NomeFile_locale;
    if (frm_conf.chkbox_oribruni_sort_copy_mdb.Checked = True) then
    begin 
    frm_main.Show; 
    frm_main.BringToFront;
    frm_main.Sort_Copy_MDB; 
    frm_main.Close; 
    end 
    else 
    begin 
    remoto:= Configurazione1.Indirizzo_db; 
    locale:= Configurazione1.Indirizzo_db_copiato;
    CopyFile(Pchar(remoto), PChar(locale), true); 
    end; 
    s := Configurazione.NomeFile_remoto; 
    if (FTP.Size(s) > 0) then 
    begin // Cancello il file se è presente sul Server FTP.Delete(Configurazione.NomeFile_remoto); 
    end; 
    // Copio il file e preparo il file tmp 
    CopyFile(Pchar('TMP\tmp.mdb'), PChar('TMP\tmp.mdb.tmp'), true);
    FTP.Put('TMP\tmp.mdb.tmp', destinazione ); 
    FTP.Noop; 
    FTP.Rename(destinazione, configurazione.NomeFile_remoto);
    FTP.Quit; 
    FTP.Disconnect; 
    end; 
    end;
    Da me il codice è indentato correttamente ma qui non riesco a farlo visualizzare bene.
    Se io verifico il file nella cartella tmp (prima di fare l'upload) viene aperto correttamente mentre quando lo scarico dal server con filezilla (e non solo) mi da problemi (e ha una dimensione diversa dal file iniziale, maggiore per giunta). Un db mdb di access mi da problemi sull'accesso (mi pare: "il file richiesto viene aperto da più utenti") mentre una foto mi dice di essere danneggiata.

    Grazie =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    qualche osservazione

    1) non userei quel componente per l'upload ftp, che è un'attività inerentemente asincrona
    2) l'uomo saggio calcola prima l'hash del file, poi ri-scarica e riverifica (se vuol essere sicuro)
    3) non creare una cartella temp "così", in un luogo non ben definito del file system, perchè se ad esempio finisci dentro programmi windows 7 e "cugini" con lo UAC ti impediranno praticamente qualsiasi cosa

    Versione breve: ti serve un esempio "scemo" di upload FTP?
    Se la risposta è "sì" non c'è problema, te lo preparo.

  5. #5
    Mi servirebbe veramente un esempio grazie mille, è la prima volta ke lavoro con i componenti ftp. Comunque la cartella tmp me la crea dove risiede il file exe del programma...


    Grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da president1991
    Mi servirebbe veramente un esempio grazie mille, è la prima volta ke lavoro con i componenti ftp. Comunque la cartella tmp me la crea dove risiede il file exe del programma...
    Appunto... (ovvero è male)

    Grazie mille
    se non hai urgentissima necessità vedo di preparartelo

  7. #7
    okok Grazie =)

    comunque potresti dirmi come si chiamano intanto questi componenti x l'upload

    Grazie

    Federico

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.