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