Windows Phone 8 dan Windows 8 menggunakan HTTP POST Multipart/Borang-Data untuk memuat naik fail ke pelayan
Untuk memuat naik fail ke pelayan menggunakan HTTP POST berbilang bahagian/data borang dalam Windows Phone 8 atau Windows 8, anda perlu mengikuti langkah berikut:
Anda telah menyediakan coretan kod yang cuba memuat naik fail menggunakan HttpWebRequest. Walau bagaimanapun, terdapat beberapa isu dalam kod yang perlu dibetulkan:
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);
Kod ini mendapatkan fail daripada direktori pemasangan pakej dan bukannya daripada storan setempat. Hendaklah ditukar kepada var file = await ApplicationData.Current.LocalFolder.GetFileAsync(DBNAME);
. var res = await HttpPost(Util.UPLOAD_BACKUP, fileBytes);
Kod ini memulakan permintaan HTTP POST tak segerak, tetapi ia tidak pernah menunggu hasilnya. res.Wait();
perlu dipanggil untuk menunggu keputusan. Berikut ialah contoh cara mengubah suai kod anda untuk memuat naik fail menggunakan 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>
Dalam Windows 8, anda boleh menggunakan kelas HttpClient untuk memuat naik fail menggunakan multipart/form-data. Berikut ialah contoh cara melakukannya:
<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>
Atas ialah kandungan terperinci Bagaimana untuk Memuat Naik Fail melalui HTTP POST Multipart/Borang-Data dalam Windows Phone 8 dan Windows 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!