tout fonctionne parfaitement, mais la chose qui m'a coûté mes derniers nerfs est la partie getstring .. cette fonction est magnifique mais j'ai besoin d'un moyen de trouver une alternative pour le problème getString .. avec getString (pic, 0, pic.length) i est devenu une erreur .. et trouver aucune issue grande thx pour l'aideBesoin d'aide .. Image Uploader fonction pour Windows Mobile 6 net cf 3.5
sien le code:
Public Function uploadPic(ByVal pic As Byte(), ByVal filename As String, ByVal user As String)
Dim encoding As String = "iso-8859-1"
'Erzeugen einer einzigartigen identifikation
Dim gui As String = Guid.NewGuid().ToString()
'Diese wird für den Header und den footer der Daten benötigt
Dim head As String = String.Format("--{0}", gui)
Dim foot As String = String.Format("--{0}--", gui)
'Einen Stringbuilder erstellen, in dem wir nun bequem die
'benötigten POST Daten speichern können
Dim contents As StringBuilder = New StringBuilder()
'Benutzerdaten schreiben (benutzername)
contents.AppendLine(head)
contents.AppendLine(String.Format("Content-Disposition: form-data; name=""{0}""", "username"))
contents.AppendLine()
contents.AppendLine(user)
'Header schreiben
contents.AppendLine(head)
'Bildinformationen schreiben, Bildkopf und die Binärdaten
Dim fileHeader As String = String.Format("Content-Disposition: file; name=""{0}""; filename=""{1}""", "media", user & ".jpg")
Dim fileData As String = System.Text.Encoding.GetEncoding(encoding).GetString(pic)
'Informationen zu dem Übergebenen Dateityp schreiben
contents.AppendLine(fileHeader)
contents.AppendLine(String.Format("Content-Type: {0}", "image/jpeg"))
contents.AppendLine()
contents.AppendLine(fileData)
'Durch schreiben des footers signalisieren dass keine Daten mehr kommen
contents.AppendLine(foot)
'MessageBox.Show(contents.ToString)
'Stream Reader zum lesen der Antwort von Twitpic
Dim reader As StreamReader
Dim result As String
Dim response As HttpWebResponse
'Einen Webrequest zu der TwitPic API erstellen
Dim request As HttpWebRequest = WebRequest.Create("http://urspacecity.de/uploadpic/up.php")
request.ContentType = String.Format("multipart/form-data; boundary={0}", gui)
request.Method = "POST"
'Die Daten die noch im Stringbuilder als String vorliegen
'in das byte (Binär)-Format umwandeln, damit die API diese annimt
Dim bytes As Byte() = System.Text.Encoding.GetEncoding(encoding).GetBytes(contents.ToString())
request.ContentLength = bytes.Length
'Einen Stream aus dem WebRequest erstellen
Dim writer As Stream = request.GetRequestStream()
'Die Binären Daten in den Strom schreiben
writer.Write(bytes, 0, bytes.Length)
response = request.GetResponse()
reader = New StreamReader(response.GetResponseStream)
result = reader.ReadToEnd
reader.Close()
Return result
End Function
a finalement trouvé la solution - changer le codage:
Dim encoding As String = "iso-8859-2"
Veuillez spécifier le problème ou l'exception reçue. –
l'erreur avec getString (pic, 0, pic.length) est PlatformNotSupportedException screenshoot: http://img101.imageshack.us/img101/6143/bild20100827174500.png et avec getString (pic) voir screenshoot : http://img148.imageshack.us/img148/2611/bild20100827174645.png Sur PC, il fonctionne parfaitement mais sur un châssis compact 3.5 je n'ai trouvé aucun moyen de le réparer. le problème de readallbytes est fixé mais maintenant je me bloque sur ce problème. –
ok maintenant j'ai de grands yeux .. j'ai vu un articel et j'ai essayé le iso-8859-2 .. maintenant il ne fait aucun problème au getstring .. mais maintenant il s'arrête à response = request.getresponse() -.- avec erreur : {"La réponse à cette requête ne peut pas être récupérée avant que les données de la demande aient été écrites."} –