Maison >développement back-end >C++ >Comment télécharger des fichiers via HTTP POST Multipart/Form-Data sous Windows Phone 8 et Windows 8 ?

Comment télécharger des fichiers via HTTP POST Multipart/Form-Data sous Windows Phone 8 et Windows 8 ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-21 04:04:17534parcourir

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

Windows Phone 8 et Windows 8 utilisent HTTP POST Multipart/Form-Data pour télécharger des fichiers sur le serveur

Pour télécharger des fichiers sur le serveur à l'aide de HTTP POST multipart/form-data sous Windows Phone 8 ou Windows 8, vous devez suivre les étapes suivantes :

Vous avez fourni un extrait de code qui tente de télécharger un fichier à l'aide de HttpWebRequest. Cependant, certains problèmes dans le code doivent être résolus :

  • var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME); Ce code récupère les fichiers du répertoire d'installation du package plutôt que du stockage local. Doit être remplacé par var file = await ApplicationData.Current.LocalFolder.GetFileAsync(DBNAME);.
  • var res = await HttpPost(Util.UPLOAD_BACKUP, fileBytes); Ce code démarre une requête HTTP POST asynchrone, mais il n'attend jamais le résultat. res.Wait(); devrait être appelé pour attendre le résultat.
  • La méthode HttpPost actuellement implémentée ne prend pas en charge les requêtes multipart/form-data. Vous devez créer une instance HttpContentMultipart et ajouter le contenu du fichier et tout autre paramètre au contenu multipart.

Voici un exemple de modification de votre code pour télécharger des fichiers à l'aide de multipart/form-data :

<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>

Sous Windows 8, vous pouvez utiliser la classe HttpClient pour télécharger des fichiers à l'aide de multipart/form-data. Voici un exemple de la façon de procéder :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn