0
所有運行完美但成本我最後nervia的東西是getstring部分.. 該函數是wonderfull,但我需要一種方法來尋找替代在GetString的問題.. 與GetString的(PIC,0,pic.length)我成爲了一個錯誤..而一籌莫展大THX的幫助需要幫助..圖片上傳功能的Windows Mobile 6淨CF 3.5
她代碼:
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
終於找到了解決方案 - 更改編碼:
Dim encoding As String = "iso-8859-2"
請指定收到的問題或異常。 – 2010-08-27 15:32:58
用的GetString(PIC,0,pic.length)誤差是 PlatformNotSupportedException screenshoot: http://img101.imageshack.us/img101/6143/bild20100827174500.png 並用的GetString(PIC)見screenshoot : http://img148.imageshack.us/img148/2611/bild20100827174645.png 在PC上它運行完美,但在緊湊的框架3.5我找不到解決它的方法。 readallbytes問題是固定的,但現在我掛在這個概率上。 – 2010-08-27 15:49:07
好吧,我現在有大眼睛..我看到一個關鍵字,並嘗試了ISO-8859-2 ..現在他在getstring沒有任何問題..但現在他停在響應= request.getresponse() - .-與錯誤: {「在寫入請求數據之前,無法檢索對此請求的響應。」} – 2010-08-27 16:18:57