Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Muat Naik Fail dan Data Rentetan Menggunakan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 8?

Bagaimana untuk Muat Naik Fail dan Data Rentetan Menggunakan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 8?

Patricia Arquette
Lepaskan: 2024-12-21 01:49:09
asal
385 orang telah melayarinya

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

Memuat Naik Fail ke Pelayan Menggunakan HTTP POST Multipart/Form-Data dalam Windows Phone 8

Anda sedang cuba memuat naik pangkalan data SQLite ke perkhidmatan web PHP melalui permintaan HTTP POST dengan jenis MIME multipart/form-data dan data rentetan tambahan "userid=SOME_ID." Walau bagaimanapun, kod semasa anda tidak berfungsi seperti yang diharapkan.

"multipart/form-data" Jenis MIME membolehkan penghantaran data borang bersama-sama dengan data binari kompleks seperti fail. Ia digunakan secara meluas untuk muat naik fail dalam aplikasi web.

Untuk mengatasi cabaran yang dihadapi dalam kod Windows Phone 8 anda, pertimbangkan untuk menggunakan fungsi terbina dalam berikut:

  1. CreateFormBodyAsync(): Fungsi ini mencipta badan borang dengan yang ditentukan kandungan.
  2. HttpUtility.UrlEncode(): URL fungsi ini mengekod rentetan "userid".
  3. HttpRequest.AddString(): Ini fungsi menambah rentetan "userid" pada permintaan body.

Berikut ialah versi kod anda yang dipertingkatkan:

async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);
    byte[] fileBytes = null;
    using (var stream = await file.OpenReadAsync())
    {
        fileBytes = new byte[stream.Size];
        using (var reader = new DataReader(stream))
        {
            await reader.LoadAsync((uint)stream.Size);
            reader.ReadBytes(fileBytes);
        }
    }

    HttpPost(fileBytes);
}

private async void HttpPost(byte[] fileBytes)
{
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");
    httpWebRequest.ContentType = "multipart/form-data";
    httpWebRequest.Method = "POST";
    using (var formBody = new HttpFormBody())
    {
        formBody.AddString("userid", HttpUtility.UrlEncode("SOME_ID"));
        httpWebRequest.AddString(formBody.CreateFormField());
    }

    using (var dataStream = await httpWebRequest.GetRequestStreamAsync())
    {
        dataStream.Write(fileBytes, 0, fileBytes.Length);
        dataStream.Close();
    }

    var asyncResult = httpWebRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), httpWebRequest);
}
Salin selepas log masuk

Pengubahsuaian ini menambahkan rentetan "userid" pada badan permintaan menggunakan kaedah HttpRequest.AddString(). Ia juga memastikan bahawa bait fail dilampirkan pada penghujung badan permintaan. Dengan menggunakan fungsi ini, anda boleh menghantar kedua-dua fail dan data rentetan tambahan dengan berkesan dalam permintaan HTTP POST, memenuhi keperluan data berbilang bahagian/borang.

Atas ialah kandungan terperinci Bagaimana untuk Muat Naik Fail dan Data Rentetan Menggunakan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 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