IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[IdFTP]Problème transfert fichier


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Par défaut [IdFTP]Problème transfert fichier
    Bonjour,

    J'ai un problème de transfert de fichier avec le composant IdFTP. J'utilise Delphi 7.

    En fait j'ai un fichier qui est assez gros entre 2 et 3 Go et mon transfert, fait a l'aide d'un "Get", plante en plein milieu à 2 147 483 647 octets. Je n'arrive pas a faire des transferts plus important.

    Comment faire pour pouvoir transférer la totalité de mon fichier???

    Merci d'avance.

    Isa

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 120
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 120
    Par défaut
    'Soir !
    2 147 483 647 octets
    Ça, c'est la limite haute d'un integer.
    Je ne connais pas les composants Indy, mais s'ils sont limités à cette valeur, te reste plus qu'à "splitter" ton fichier.
    Ou y a p'têt d'autres moyens ? Mais j'les connais point !

    Mes 2 cts,
    --
    jp

  3. #3
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    les données reçu, où tu met les??

  4. #4
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    - Soit tu utilises autre chose que TIdFTP (un autre composant, la SDK d'un logiciel FTP)
    - Soit tu te bidouilles un descendant de TIdFTP qui utilise un Cardinal et non un integer pour comptabiliser la taille des fichiers
    - Soit tu coupes tes fichiers en morceau,
    - soit tu les charges par morceaux (à la manière des downloaders)

    Sinon, je sêche

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 120
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 120
    Par défaut
    Yop !
    Soit tu te bidouilles un descendant de TIdFTP qui utilise un Cardinal et non un integer
    et tu seras limitée par le cardinal, presque 4,3 gig, mais au train où vont les choses et la taille des fichiers...

    Mes 2 cts,
    --
    jp

  6. #6
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Citation Envoyé par Jipété
    Yop !
    et tu seras limitée par le cardinal, presque 4,3 gig, mais au train où vont les choses et la taille des fichiers...

    Mes 2 cts,
    --
    jp
    bah, c'est toujours mieux que deux gigs non ?

  7. #7
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    Citation Envoyé par edam
    les données reçu, où tu met les??
    qu'on tu commence la réception tu met les bloc reçu où???
    en memoir ou directement dans un fichier???

  8. #8
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Avec ce bout de code, tu devrais pouvoir t'affranchir des 2 Go :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    uses Wininet;
     
    function GetInetFile
    (const fileURL, FileName: String): boolean;
    const BufferSize = 1024;
    var
      hSession, hURL: HInternet;
      Buffer: array[1..BufferSize] of Byte;
      BufferLen: DWORD;
      f: File;
      sAppName: string;
    begin
     Result:=False;
     sAppName := ExtractFileName(Application.ExeName);
     hSession := InternetOpen(PChar(sAppName),
                    INTERNET_OPEN_TYPE_PRECONFIG,
                   nil, nil, 0);
     try
      hURL := InternetOpenURL(hSession,
                PChar(fileURL),
                nil,0,0,0);
      try
       AssignFile(f, FileName);
       Rewrite(f,1);
       repeat
        InternetReadFile(hURL, @Buffer,
                         SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen)
       until BufferLen = 0;
       CloseFile(f);
       Result:=True;
      finally
       InternetCloseHandle(hURL)
      end
     finally
      InternetCloseHandle(hSession)
     end
    end;

  9. #9
    Membre éclairé Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Par défaut
    Bon alors là j'ai un autre problème avec le code j'ai une erreur a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BlockWrite(f, Buffer, BufferLen)
    avec le message suivant
    Erreur lors de l'emission de fichier. Erreur E/S 1784.
    Ca peut venir d'ou??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème transfert fichier texte fichier .csv
    Par stansoad0108 dans le forum Langage
    Réponses: 14
    Dernier message: 09/03/2012, 10h30
  2. Réponses: 4
    Dernier message: 31/01/2012, 21h24
  3. Problème transfert fichier Serveur-Client
    Par ramdamriddim dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 22/12/2009, 12h20
  4. Réponses: 4
    Dernier message: 23/11/2008, 02h05
  5. Réponses: 5
    Dernier message: 21/06/2008, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo