Heim >Backend-Entwicklung >C++ >Wie lade ich Dateien über HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 hoch?
Windows Phone 8 und Windows 8 verwenden HTTP POST Multipart/Form-Data, um Dateien auf den Server hochzuladen
Um Dateien mithilfe von HTTP POST Multipart/Formulardaten in Windows Phone 8 oder Windows 8 auf den Server hochzuladen, müssen Sie die folgenden Schritte ausführen:
Sie haben einen Codeausschnitt bereitgestellt, der versucht, eine Datei mithilfe von HttpWebRequest hochzuladen. Es gibt jedoch einige Probleme im Code, die behoben werden müssen:
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);
Dieser Code ruft die Dateien aus dem Paketinstallationsverzeichnis statt aus dem lokalen Speicher ab. Sollte in var file = await ApplicationData.Current.LocalFolder.GetFileAsync(DBNAME);
geändert werden. var res = await HttpPost(Util.UPLOAD_BACKUP, fileBytes);
Dieser Code startet eine asynchrone HTTP-POST-Anfrage, wartet jedoch nie auf das Ergebnis. res.Wait();
sollte aufgerufen werden, um auf das Ergebnis zu warten. Hier ist ein Beispiel dafür, wie Sie Ihren Code ändern, um Dateien mithilfe von Multipart-/Formulardaten hochzuladen:
<code class="language-csharp">//假设您还有一个名为“userid”的字符串变量,其中包含用户 ID private async void HttpPost(byte[] fileBytes) { HttpClient httpClient = new HttpClient(); MultipartFormDataContent multipartContent = new MultipartFormDataContent(); HttpContent fileContent = new ByteArrayContent(fileBytes); multipartContent.Add(fileContent, "file", "filename.db"); multipartContent.Add(new StringContent(userid), "userid", "userdata.txt"); var response = await httpClient.PostAsync("http://www.myserver.com/upload.php", multipartContent); // ... }</code>
In Windows 8 können Sie die HttpClient-Klasse verwenden, um Dateien mithilfe von Multipart-/Formulardaten hochzuladen. Hier ist ein Beispiel dafür:
<code class="language-csharp">//假设您还有一个名为“userid”的字符串变量,其中包含用户 ID public async Task Upload(byte[] fileBytes) { using (HttpClient httpClient = new HttpClient()) { using (MultipartFormDataContent form = new MultipartFormDataContent()) { form.Add(new StringContent(username), "username"); form.Add(new StringContent(useremail), "email"); form.Add(new StringContent(password), "password"); form.Add(new ByteArrayContent(fileBytes, 0, fileBytes.Length), "profile_pic", "hello1.jpg"); HttpResponseMessage response = await httpClient.PostAsync("http://www.myserver.com/upload.php", form); // ... } } }</code>
Das obige ist der detaillierte Inhalt vonWie lade ich Dateien über HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!