Het volgende stukje leest bestanden in en zet ze bij in de http header als bytes, nu de header word aangemaakt maar geen data. Als ik een breakpoint instel en dan step by step doen dan zien ik hem over de while springen, terwijl er wel data in de filestream zit. Wat gaat er verkeerd, iemand een idee?
Wat ik al geprobeerd heb: euhm niet veel want snap niet wat er mis gaat.
Van (originele code: http://bytes.com/topic/c-...ow-upload-file-via-c-code )
* length gebruikt ie niet in de volledige code dat ie heeft gepost dus volgens mij mag je dat negeren.
naar
Wat ik al geprobeerd heb: euhm niet veel want snap niet wat er mis gaat.
Van (originele code: http://bytes.com/topic/c-...ow-upload-file-via-c-code )
C#:
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
| string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n Content-Type: application/octet-stream\r\n\r\n"; for(int i=0;i<files.Length;i++) { string header = string.Format(headerTemplate,"file"+i,files[i]); byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header); memStream.Write(headerbytes,0,headerbytes.Length); length += headerbytes.Length; FileStream fileStream = new FileStream(files[i], FileMode.Open, FileAccess.Read); byte[] buffer = new byte[1024]; int bytesRead = 0; while ( (bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0 ) { memStream.Write(buffer, 0, bytesRead); length += bytesRead; } memStream.Write(boundarybytes,0,boundarybytes.Leng th); length += boundarybytes.Length; fileStream.Close(); } |
* length gebruikt ie niet in de volledige code dat ie heeft gepost dus volgens mij mag je dat negeren.
naar
Visual Basic .NET:
*ik gebruik de file array nog niet, iets met in de hoofding dat je altijd iets moet ingevuld hebben, eens uitzoeken als ik tijd heb 1
2
3
4
5
6
7
8
9
10
11
12
13
14
| If File.Exists(sFiles) Then Dim headerTemplate As String = "Content-Disposition: form-data; name=""{0}""; filename=""{1}""" & Environment.NewLine & "Content-Type: application/octet-stream" & Environment.NewLine & Environment.NewLine ' For i = 0 To sFiles.Length Dim headerbytes As Byte() = encoding.GetBytes(String.Format(headerTemplate, "upfile", sFiles)) memStream.Write(headerbytes, 0, headerbytes.Length) Using fileStream As FileStream = New FileStream(sFiles, FileMode.Open, FileAccess.Read) Dim buffer(1024) As Byte Dim bytesRead As Int64 = 0 While ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) <> 0) memStream.Write(buffer, 0, bytesRead) End While End Using 'if i<> sfiles.length then memStream.Write(boundarybytes, 0, boundarybytes.Length) End If |
[ Voor 4% gewijzigd door Damic op 04-05-2015 21:59 ]
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag