- #1
M
MaXXL
Guest
Hi leutz!
Ich code zurzeit ein kleines Upload-Tool, dessen Code ich von C nach VB übertragen hab, damit ich das Programm selbst gestalten kann (da ich C nicht wirklich kann ;D)
Jedenfalls bekomme ich beim schreiben in den Internet-Stream immer irgendwann eine Fehlermeldung, dass Die Anzahl der Bytes im zu sendenden Byte-Array die angegebene Länge überschreitet.
Aber als ich mal Debuggt habe, waren das Attribut count und die Länge des Arrays vollkommen identisch.
Hier der Code des entsprechenden Abschnitts:
Wobei fs2 mein Filestream zu der Datei ist und reqstream mein Internet-Stream.
Ab einer bestimmten Anzahl von in den Stream geschriebenen Bytes (genau 249917, sagt mein VB^^), sprich, wenn die Datei zu groß ist, kommt diese Fehlermeldung:
Meine Test-Datei wäre jedoch genau 251184 Bytes lang.
Bei der nächsten Test-Datei, die 282624 Bytes lang ist, geht es aber problemlos. ???
Nun zu meinem zweiten Problem:
Trotzdem wird meine Test-Datei Nummero 2 auch nicht hochgeladen, da er keine Antwort vom Webserver erhält.
Ich vermute (bzw. hoffe ), dass ich falsch übersetzt hab, denn sonst wäre wieder irgendein Code falsch ;D
Die C-Zeile
habe ich in
übersetzt. Stimmt das?
So, das wären meine Probleme erst einmal
cu, MaXXL
Ich code zurzeit ein kleines Upload-Tool, dessen Code ich von C nach VB übertragen hab, damit ich das Programm selbst gestalten kann (da ich C nicht wirklich kann ;D)
Jedenfalls bekomme ich beim schreiben in den Internet-Stream immer irgendwann eine Fehlermeldung, dass Die Anzahl der Bytes im zu sendenden Byte-Array die angegebene Länge überschreitet.
Aber als ich mal Debuggt habe, waren das Attribut count und die Länge des Arrays vollkommen identisch.
Hier der Code des entsprechenden Abschnitts:
Code:
Dim bufferbytes(4096) As Byte
Dim bytesread As Integer = fs2.Read(bufferbytes, 0, bufferbytes.Length)
While fs2.Position < fs2.Length
reqstream.Write(bufferbytes, 0, bytesread)-><<- Hier kommt die Fehlermeldung
bytesread = fs2.Read(bufferbytes, 0, bufferbytes.Length)
If fs2.Position Mod 4096 > 0 Then
reqstream.Write(bufferbytes, 0, Convert.ToInt32(fs2.Position Mod 4096))
End If
progressBar.PerformStep()
lblStatustext.Text = Uploade & fname & : & Convert.ToString((fs2.Position / 1024)) & KB & / & Convert.ToString((info.Length / 1024)) & KB
End While
Wobei fs2 mein Filestream zu der Datei ist und reqstream mein Internet-Stream.
Ab einer bestimmten Anzahl von in den Stream geschriebenen Bytes (genau 249917, sagt mein VB^^), sprich, wenn die Datei zu groß ist, kommt diese Fehlermeldung:
Code:
Eine nicht behandelte Ausnahme des Typs->System.Net.ProtocolViolationException' ist in system.dll aufgetreten.
Zusätzliche Informationen: Die in den Stream zu schreibenden Bytes überschreiten die angegebene Byteanzahl für die Inhaltslänge.
Meine Test-Datei wäre jedoch genau 251184 Bytes lang.
Bei der nächsten Test-Datei, die 282624 Bytes lang ist, geht es aber problemlos. ???
Nun zu meinem zweiten Problem:
Trotzdem wird meine Test-Datei Nummero 2 auch nicht hochgeladen, da er keine Antwort vom Webserver erhält.
Ich vermute (bzw. hoffe ), dass ich falsch übersetzt hab, denn sonst wäre wieder irgendein Code falsch ;D
Die C-Zeile
Code:
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
Code:
Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
So, das wären meine Probleme erst einmal
cu, MaXXL