Maison > développement back-end > tutoriel php > Comment télécharger des fichiers sur un serveur à l'aide de HTTP POST Multipart/Form-Data sous Windows Phone 8 et Windows 8 ?

Comment télécharger des fichiers sur un serveur à l'aide de HTTP POST Multipart/Form-Data sous Windows Phone 8 et Windows 8 ?

Linda Hamilton
Libérer: 2024-12-08 11:51:12
original
693 Les gens l'ont consulté

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

Télécharger un fichier sur un serveur avec HTTP POST Multipart/Form-Data dans Windows Phone et Windows 8

Le téléchargement de fichiers sur un serveur Web est un tâche courante dans le développement mobile. Dans ce guide, nous explorerons comment y parvenir avec HTTP POST multipart/form-data en utilisant à la fois Windows Phone 8 et Windows 8 à l'aide d'API natives.

Implémentation de Windows Phone 8

Vous avez tenté de télécharger un fichier sur votre service Web PHP en utilisant HTTP POST avec multipart/form-data, mais vous avez rencontré des problèmes. Votre code ne transmet pas le paramètre "userid" comme prévu. Pour résoudre ce problème, modifiez votre code pour inclure le paramètre "userid" dans les données du formulaire.

Voici un exemple de la façon de procéder :

private void GetRequestStreamCallback(IAsyncResult asynchronousResult, byte[] postData)
{
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
    Stream postStream = request.EndGetRequestStream(asynchronousResult);
    string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
    byte[] boundary_bytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");

    // Write the "userid" parameter
    postStream.Write(boundary_bytes, 0, boundary_bytes.Length);
    byte[] userid_bytes = Encoding.ASCII.GetBytes("Content-Disposition: form-data; name=\"userid\"\r\n\r\n" + "SOME_ID" + "\r\n");
    postStream.Write(userid_bytes, 0, userid_bytes.Length);

    // Write the file data
    postStream.Write(boundary_bytes, 0, boundary_bytes.Length);
    byte[] file_content_disposition_bytes = Encoding.ASCII.GetBytes("Content-Disposition: form-data; name=\"file\"; filename=\"database.sqlite\"\r\nContent-Type: application/octet-stream\r\n\r\n");
    postStream.Write(file_content_disposition_bytes, 0, file_content_disposition_bytes.Length);
    postStream.Write(postData, 0, postData.Length);

    // Write the ending boundary
    postStream.Write(boundary_bytes, 0, boundary_bytes.Length);
    byte[] end_boundary = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
    postStream.Write(end_boundary, 0, end_boundary.Length);

    postStream.Close();

    var asyncResult = request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
Copier après la connexion

Dans ce code, le "userid " Le paramètre est transmis avec les données du fichier. Assurez-vous que votre service Web PHP attend les paramètres dans ce format.

Implémentation de Windows 8

Pour Windows 8, vous avez tenté d'utiliser HttpClient et MultipartFormDataContent pour télécharger le fichier. , mais cela a également échoué. Le problème peut résider dans le type de contenu incorrect pour les données du fichier. Modifiez votre code pour spécifier le type de contenu correct :

form.Add(new ByteArrayContent(file_bytes, 0, file_bytes.Length), "file", "hello1.jpg", "application/octet-stream");
Copier après la connexion

Ce code définit correctement le type de contenu sur "application/octet-stream" pour les données du fichier.

Remarques supplémentaires

  • Assurez-vous que votre service Web est correctement configuré pour gérer les données multipart/form demandes.
  • Testez minutieusement votre implémentation pour vous assurer que les données sont téléchargées avec succès et sans perte ni corruption de données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal