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 :

Problème de dépot de fichier sur un serveur


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Problème de dépot de fichier sur un serveur
    Bonjour,

    J'utilise du code de WinInnet pour transférer un fichier sur un serveur mais j'ai le problème suivant : le fichier n'est pas sur le serveur malgré que la connexion a réussie. Voici le bout de code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      if OpenConnexion(Self.Handle, IServeur, IUtilisateur, ILogin, StrToInt(IPort))
      then begin
             IsConnected := true;
             UpLoadFile(Fichier, ExtractFileName(Fichier));
             ...
           end;
    Pour mieux comprendre le problème, j'ai modifié le code avec Opendialog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      if OpenConnexion(Self.Handle, IServeur, IUtilisateur, ILogin, StrToInt(IPort))
      then begin
             IsConnected := true;
             if OpenDialog.Execute
             then begin
                    OpenDialog.Title := 'Uploader';
                    Fichier := OpenDialog.FileName;
                    UpLoadFile(Fichier, ExtractFileName(Fichier));
                    ....
                  end;
           end;
    Et là, ca marche le fichier est sur le serveur ! Il y a bien un autre moyen de placer un fichier sans passer pas la boite de dialogue OpenDialog.

    Pourtant, j'ai vérifié le chemin du fichier et j'utilise ExtractFileName. Pouvez-vous m'aider ?

    Merci pour votre collaboration

    Phephelavi
    Avez-vous une suggestion ?

    Merci d'avance

    Phephelavi

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 901
    Points : 15 334
    Points
    15 334
    Par défaut
    Vit' fait :

    Dans la proc avec OpenDialog, tu mets
    Fichier := OpenDialog.FileName;
    et ensuite tu utilises "Fichier" avec UploadFile.
    Rien de tel avec l'autre manière...
    Tu ne nous as pas mis tout le code ?
    --
    jp

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Problème d'envoi par FTP
    Bonsoir,

    Voici la procédure entière que j'ai réalisé suivant du code de Elgeuvel mais rien n'y fait, le fichier n'est toujours pas sur le serveur alors que la connexion et le transfert se sont bien déroulé (message de fin)
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    procedure TFCobraSAgent.EnvoyerFichierFTP;
    //Se connecte au serveur et envoie le fichier de service de l'agent en cours
     
    var
      FichierLocal       : string;    //Nom du fichier en local Windows
      FichierServeur     : string;    //Nom du fichier pour le serveur 
      Serveur            : string;    //Adresse serveur, ex : perso-ftp.wanadoo.fr
      Login              : string;    //Nom utilisateur, ex : <a href="mailto:mr.martin@wanadoo.fr">mr.martin@wanadoo.fr</a>
      MotPasse           : string;  
      Port               : string;    //Le n° du port, FTP par défaut = 21
      PConnexionInternet : HINTERNET;
      PConnexionFTP      : HINTERNET;
     
    begin
      //On récupère d'abord les paramètres du serveur (par un Reguitry
      FCobraS.LireParamFTP(Serveur, Login, MotPasse, Port);
      ShowMessage('Handle : ' + IntToStr(Self.Handle) + #13#10 +
        'Adresse : ' + Serveur + #13#10 +
        'Login : ' + Login + #13#10 +
        'Mot de passe : ' + MotPasse + #13#10 +
        'Port : ' + Port);
     
      FichierLocal   := 'C:\CobrasSecurite\MainCourante\CSmc.txt';
      FichierServeur := 'CSmc.txt';
     
      //Connexions : Internet, puis FTP
      PConnexionInternet := InternetOpen(PChar('CobraSecurite'),  
        INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
     
      if PConnexionInternet = nil
      then Exit;
     
      PConnexionFTP := InternetConnect(PConnexionInternet, Pchar(Serveur), StrToInt(Port), Pchar(Login), Pchar(MotPasse), INTERNET_SERVICE_FTP, 0, 0 );
     
      if PConnexionFTP = nil
      then begin
        InternetCloseHandle(PConnexionInternet);
        Exit;
      end;
     
      //Envoi du fichier
      Try
        FtpPutFile(PConnexionFTP, PChar(FichierLocal), PChar(FichierServeur), 
          FTP_TRANSFER_TYPE_BINARY, 0);
        Sleep(2000); 
      Finally
        //On ferme la connexion
        InternetCloseHandle(PConnexionInternet);
        InternetCloseHandle(PConnexionFTP);
      end;
      ShowMessage('Transfert réussi !');
    end;
    Je n'ai pas d'erreur mais le fichier 'CSmc.txt' n'est toujours pas sur le serveur (je vérifie avec FTPExpert).

    Si quelqu'un peut me dire ou est le problème ! J'utilise le FTP par WinInet.

    Phephelavi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Points : 22
    Points
    22
    Par défaut J'ai trouvé une solution
    Bonjour à tous,

    Je ne sais pas pourquoi cela ne veut pas fonctionner mais j'ai trouvé une solution.

    J'ai beau mettre même en "dur" le chemin et le nom du fichier, après un envoi du fichier, il n'est toujours pas sur le serveur. Que je passe par un String ou un FileName, et même un OpenDialog.FileName, rien n'y fait !

    Tous les exemples que j'ai trouvé sur les forums, c'est toujours une application avec envoi, suppression, téléchargement en passant par une boite de dialogue mais jamais en passant par des variables et par une tâche de fond.

    Alors, j'ai posé un panel, unTDirectoyListBox relié à un TFileListBox et un composant OpenDialog. Je mets le panel en invisible.

    Dans la procédure d'envoi, je place :
    ...
    OpenDialog1.FileName := FileListBox1.Items[FileListBox1.ItemIndex];
    ...

    Et là, je n'ai plus de problème.

    Si quelqu'un à une infos sur ce sujet, je suis preneur pour comprendre le problème.

    Merci et bon weekend à tous !

    Phephelavi

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/11/2009, 17h45
  2. Réponses: 4
    Dernier message: 23/11/2008, 02h05
  3. Réponses: 15
    Dernier message: 03/03/2008, 09h25
  4. même problème acces concurrent aux fichiers sur le serveur
    Par al3alwa dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/06/2007, 16h51
  5. Réponses: 2
    Dernier message: 18/08/2006, 12h30

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