Heim >Backend-Entwicklung >C++ >Wie lade ich Dateien über HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 hoch?

Wie lade ich Dateien über HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 hoch?

Susan Sarandon
Susan SarandonOriginal
2025-01-21 04:04:17535Durchsuche

How to Upload Files via HTTP POST Multipart/Form-Data in Windows Phone 8 and Windows 8?

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.
  • Die derzeit implementierte HttpPost-Methode unterstützt keine Multipart-/Formulardatenanfragen. Sie müssen eine HttpContentMultipart-Instanz erstellen und den Dateiinhalt und alle anderen Parameter zum mehrteiligen Inhalt hinzufügen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn