Bonjour tout le monde,
Je débute en c# et je souhaite faire un client ftp.
J'ai quelque problème avec l'upload d'un fichier, dont voici le code:
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
| public bool Upload(string fileName, string inputFilePath)
{
Uri serveurUri = new Uri(adresse_ftp + "/" + fileName);
FtpWebRequest myRequest = (FtpWebRequest)FtpWebRequest.Create(serveurUri);
myRequest.Credentials = new NetworkCredential(login_ftp, password_ftp);
myRequest.Timeout = timeout;
myRequest.KeepAlive = false;
myRequest.Method = WebRequestMethods.Ftp.UploadFile;
FileStream stream = File.OpenRead(inputFilePath);
byte[] buffer = new byte[2000];
int ByteLu = 0;
Stream reqStream=null;
reqStream = myRequest.GetRequestStream();
do
{
ByteLu = stream.Read(buffer, 0, buffer.Length);
try
{
reqStream.Write(buffer, 0, ByteLu);
}
catch
{
stream.Close();
return false;
}
reqStream.Flush();
} while (ByteLu != 0);
stream.Close();
reqStream.Close();
return true;
} |
Tout se passe bien, sauf lorsque je simule des coupures. Lorsque je simule une coupure pendant le transfert, l'exception se déclenche à l'instruction
reqStream.Write(buffer, 0, ByteLu);
normal.
A l'appel du prochain upload, il n'y a toujours pas de probleme. Je simule une deuxieme coupure, exception à
reqStream.Write(buffer, 0, ByteLu);
toujours normal
Je relance relance la methode et la , l'application se bloque a l'instruction
reqStream = myRequest.GetRequestStream();
Si vous avez des réponses ce serait cool!
Merci
Partager