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?
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:
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); }
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!