Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Berjaya Memuat Naik Fail dan Lulus Parameter Tambahan dengan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 8?

Bagaimana untuk Berjaya Memuat Naik Fail dan Lulus Parameter Tambahan dengan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 8?

Patricia Arquette
Lepaskan: 2024-12-15 00:19:10
asal
866 orang telah melayarinya

How to Successfully Upload Files and Pass Additional Parameters with HTTP POST Multipart/Form-Data in Windows Phone 8?

Memuat Naik Fail dengan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 8

Apabila membangunkan aplikasi Windows Phone 8, perkara biasa perlu memuat naik fail ke pelayan. Ini boleh dicapai menggunakan HTTP POST dengan jenis MIME multipart/form-data. Walau bagaimanapun, terdapat pertimbangan khusus untuk Windows Phone 8.

Contoh Kod dan Penjelasan Ralat

Sampel kod yang disediakan cuba memuat naik fail dan lulus parameter rentetan ("userid=SOME_ID") menggunakan HTTP POST berbilang bahagian/data-bentuk. Walau bagaimanapun, ia menghadapi isu apabila fail tidak berjaya dimuat naik.

Isu khusus terletak pada kaedah GetRequestStreamCallback. Strim permintaan diperoleh menggunakan request.EndGetRequestStream(asynchronousResult), tetapi parameter "userid=some_user_id" tidak ditambahkan pada permintaan.

Melalui Parameter Tambahan

Untuk menghantar parameter tambahan seperti " userid", adalah perlu untuk membuat sempadan untuk permintaan data berbilang bahagian/bentuk. Sempadan ini memisahkan bahagian permintaan yang berlainan (fail dan parameter tambahan).

Sampel Kod Yang Dipertingkat

Berikut ialah contoh kod yang dipertingkatkan yang mengendalikan permintaan data berbilang bahagian/borang dengan betul dan lulus parameter tambahan:

private void HttpPost(byte[] fileBytes, string additionalParam)
{
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");
    httpWebRequest.ContentType = "multipart/form-data; boundary=---------------------------" + DateTime.Now.Ticks.ToString("x");
    httpWebRequest.Method = "POST";
    var asyncResult = httpWebRequest.BeginGetRequestStream((ar) => { GetRequestStreamCallback(ar, fileBytes, additionalParam); }, httpWebRequest);  
}

private void GetRequestStreamCallback(IAsyncResult asynchronousResult, byte[] postData, string additionalParam)  
{
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;  
    Stream postStream = request.EndGetRequestStream(asynchronousResult); 

    // Create boundary start string
    string boundaryStart = "--" + request.ContentType.Substring(request.ContentType.IndexOf('=') + 1);

    // Write file content
    string fileBoundary = boundaryStart + Environment.NewLine + "Content-Disposition: form-data; name=\"file\"; filename=\"myfile.db\"" + Environment.NewLine + "Content-Type: application/octet-stream" + Environment.NewLine + Environment.NewLine;
    postStream.Write(Encoding.UTF8.GetBytes(fileBoundary), 0, fileBoundary.Length);   
    postStream.Write(postData, 0, postData.Length);  

    // Write additional parameter
    string paramBoundary = Environment.NewLine + boundaryStart + Environment.NewLine + "Content-Disposition: form-data; name=\"userid\"" + Environment.NewLine + Environment.NewLine + additionalParam + Environment.NewLine;
    postStream.Write(Encoding.UTF8.GetBytes(paramBoundary), 0, paramBoundary.Length);   

    // Write boundary end string
    string boundaryEnd = Environment.NewLine + "--" + request.ContentType.Substring(request.ContentType.IndexOf('=') + 1) + "--" + Environment.NewLine;
    postStream.Write(Encoding.UTF8.GetBytes(boundaryEnd), 0, boundaryEnd.Length);  

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

Dengan mengikuti garis panduan ini, anda boleh berjaya memuat naik fail ke pelayan dan menghantar parameter tambahan menggunakan HTTP SIARAN data berbilang bahagian/borang dalam aplikasi Windows Phone 8.

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Memuat Naik Fail dan Lulus Parameter Tambahan dengan HTTP POST Berbilang Bahagian/Data Borang dalam Windows Phone 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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