ホームページ >バックエンド開発 >PHPチュートリアル >Windows Phone 8 で HTTP POST Multipart/Form-Data を使用してファイルをサーバーにアップロードする方法
Windows Phone 8 で HTTP POST multipart/form を使用してサーバーにファイルをアップロードする-data には、HttpWebRequest クラスの使用が含まれます。実装方法は次のとおりです:
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); } } // Construct HTTP request with multipart/form-data content type and userID data HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php"); httpWebRequest.ContentType = "multipart/form-data"; var boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); httpWebRequest.Method = "POST"; // Begin obtaining request stream for writing file bytes and userID data var asyncResult = httpWebRequest.BeginGetRequestStream((ar) => { GetRequestStreamCallback(ar, fileBytes, boundary); }, httpWebRequest); } private void GetRequestStreamCallback(IAsyncResult asynchronousResult, byte[] postData, string boundary) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; Stream postStream = request.EndGetRequestStream(asynchronousResult); // Write file bytes to request stream postStream.Write(postData, 0, postData.Length); // Write userID data to request stream var lineBreak = "\r\n"; var formData = $"--{boundary}{lineBreak}Content-Disposition: form-data; name=\"userid\"{lineBreak}{lineBreak}SOME_ID{lineBreak}"; var formDataBytes = System.Text.Encoding.UTF8.GetBytes(formData); postStream.Write(formDataBytes, 0, formDataBytes.Length); // Closing boundary string var closingBoundary = $"--{boundary}--{lineBreak}"; var closingBoundaryBytes = System.Text.Encoding.UTF8.GetBytes(closingBoundary); postStream.Write(closingBoundaryBytes, 0, closingBoundaryBytes.Length); postStream.Close(); var asyncResult = request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); } private void GetResponseCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); // ... Handle response }
以上がWindows Phone 8 で HTTP POST Multipart/Form-Data を使用してファイルをサーバーにアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。