none
FTP Upload erreur "la connexion sous-jacente a été fermée une erreur inattendue s'est produite lors de la réception" RRS feed

  • Discussion générale

  •  Bonjour à tous,
    Après un très long moment j'ai finalement réussi à créer mon FTP uploader (avec de l'aide). 
    Tout fonctionne à merveille, mais dès que j'essais d'uploader un fichier de bonne taille, vers la fin du transfert il me dit l'erreur qui suit:
    "La connexion sous-jacente a été fermée une erreur inattendue s'est produite lors de la réception" mais avec des plus petit fichier tout fonctionne à merveille.
    Je suis sous Windows 7, voici mon code, <br/>
    
    
    private void Upload(string filename)
    
      {
    
       
    
       
    
       
    
       FileInfo fileInf = new FileInfo(filename);
    
    
    
       string uri = uri = "ftp://" + "/" + fileInf.Name;
    
    
    
       FtpWebRequest reqFTP;
    
    
    
       // Create FtpWebRequest object from the Uri provided
    
    
    
       reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://ftp.addon-city.net/upload" + fileInf.Name));
    
    
    
       // Provide the WebPermission Credintials
    
    
    
       reqFTP.Credentials = new NetworkCredential("***************", "*************");
    
       
    
       // By default KeepAlive is true, where the control connection is not closed
    
    
    
       // after a command is executed.
    
       
    
       reqFTP.KeepAlive = true;
    
       reqFTP.Timeout = 999999999;
    
       reqFTP.ReadWriteTimeout = 999999999;
    
       reqFTP.KeepAlive = true;
    
    
    
       // Specify the command to be executed.
    
    
    
       reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
    
    
    
       // Specify the data transfer type.
    
    
    
       reqFTP.UseBinary = true;
    
    
    
       // Notify the server about the size of the uploaded file
    
    
    
       reqFTP.ContentLength = fileInf.Length;
    
    
    
       // The buffer size is set to 2kb
    
    
    
       int buffLength = 999999999;
    
    
    
       byte[] buff = new byte[buffLength];
    
    
    
       int contentLen;
    
    
    
       // Opens a file stream (System.IO.FileStream) to read the file to be uploaded
    
    
    
       FileStream fs = fileInf.OpenRead();
    
       
    
       
    
    
    
       try
    
       {
    
    
    
        // Stream to which the file to be upload is written
    
    
    
        Stream strm = reqFTP.GetRequestStream();
    
    
    
        // Read from the file stream 2kb at a time
    
    
    
        contentLen = fs.Read(buff, 0, buffLength);
    
    
    
        // Till Stream content ends
    
    
    
        while (contentLen != 0)
    
        {
    
    
    
         // Write Content from the file stream to the FTP Upload Stream
    
    
    
         strm.Write(buff, 0, contentLen);
    
    
    
         contentLen = fs.Read(buff, 0, buffLength);
    
    
    
        }
    
    
    
        // Close the file stream and the Request Stream
    
    
    
        strm.Close();
    
    
    
        fs.Close();
    
    
    
        
    
        button2.Enabled = true;
    
        MessageBox.Show("Fini");
    
        Cursor.Current = Cursors.Arrow;
    
        
    
    
    
       }
    
    
    
    
    
    
    
       catch (Exception ex)
    
       {
    
    
    
        MessageBox.Show(ex.Message, "Erreur lors du transfert");
    
    
    
       }
    
    

    je me débrouille un peu en C# et en anglais

    Merci d'avance de votre aide !

    mercredi 3 novembre 2010 10:45

Toutes les réponses