Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memuat Naik Fail melalui HTTP POST Multipart/Borang-Data dalam Windows Phone 8 dan Windows 8?

Bagaimana untuk Memuat Naik Fail melalui HTTP POST Multipart/Borang-Data dalam Windows Phone 8 dan Windows 8?

Susan Sarandon
Lepaskan: 2025-01-21 04:04:17
asal
569 orang telah melayarinya

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

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.
  • Kaedah HttpPost yang dilaksanakan pada masa ini tidak menyokong permintaan berbilang bahagian/data borang. Anda perlu mencipta contoh HttpContentMultipart dan menambah kandungan fail dan sebarang parameter lain pada kandungan berbilang bahagian.

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan