Bonjour,
je fait un programme C# ou je doit effectuer un POST et uploader des fichiers d'environs ~30mo.
Je peut envoyer les fichiers sans problèmes, sauf que je suis incapable de tracker la progression réel de l'upload. Tout ce que je suis capable de faire c'est d'écrire dans le stream, il affichera une progression de 0-100% pratiquement instantané et déclenchera ensuite le transfer a l'appel de GetResponse(), ce n'est évidemment par ce que je veut.
Merci d'avance à ceux qui pourront m'aider.
---
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 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("mon_address_pour_le_post"); request.Method = "POST"; request.ContentType = "text/plain"; //request.AllowWriteStreamBuffering = false; //request.ServicePoint.Expect100Continue = false; //request.SendChunked = true; request.Timeout = -1; FileInfo fileInfo = new FileInfo(@"C:\mon_fichier"); request.ContentLength = fileInfo.Length; int segments = Convert.ToInt32(fileInfo.Length / (1024 * 4)); using (FileStream fileStream = fileInfo.OpenRead()) { byte[] tempBuffer = new byte[1024 * 4]; int bytesRead = 0; int segment = 0; using (Stream requestStream = request.GetRequestStream()) { while ((bytesRead = fileStream.Read(tempBuffer, 0, tempBuffer.Length)) > 0) { requestStream.Write(tempBuffer, 0, bytesRead); segment++; Console.WriteLine("{0} - Progress: {1} %", segment, ((segment * 100.0) / segments)); } } } using (WebResponse response = request.GetResponse()) { // }
Partager