首頁 > 後端開發 > php教程 > 如何在 Windows Phone 8 和 Windows 8 中使用 HTTP POST Multipart/Form-Data 將檔案上傳到伺服器?

如何在 Windows Phone 8 和 Windows 8 中使用 HTTP POST Multipart/Form-Data 將檔案上傳到伺服器?

Linda Hamilton
發布: 2024-12-08 11:51:12
原創
712 人瀏覽過

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

在Windows Phone 和Windows 8 中使用HTTP POST 多部分/表單資料將檔案上傳到伺服器

將檔案上傳到Web 伺服器是一種行動開發中的常見任務。在本指南中,我們將探索如何使用 Windows Phone 8 和使用本機 API 的 Windows 8 透過 HTTP POST multipart/form-data 來實現此目的。

Windows Phone 8 實作

您嘗試使用帶有 multipart/form-data 的 HTTP POST 將檔案上傳到 PHP Web 服務,但遇到了問題。您的程式碼未如預期傳遞“userid”參數。若要解決此問題,請修改您的程式碼以在表單資料中包含“userid”參數。

以下是如何執行此操作的範例:

private void GetRequestStreamCallback(IAsyncResult asynchronousResult, byte[] postData)
{
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
    Stream postStream = request.EndGetRequestStream(asynchronousResult);
    string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
    byte[] boundary_bytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");

    // Write the "userid" parameter
    postStream.Write(boundary_bytes, 0, boundary_bytes.Length);
    byte[] userid_bytes = Encoding.ASCII.GetBytes("Content-Disposition: form-data; name=\"userid\"\r\n\r\n" + "SOME_ID" + "\r\n");
    postStream.Write(userid_bytes, 0, userid_bytes.Length);

    // Write the file data
    postStream.Write(boundary_bytes, 0, boundary_bytes.Length);
    byte[] file_content_disposition_bytes = Encoding.ASCII.GetBytes("Content-Disposition: form-data; name=\"file\"; filename=\"database.sqlite\"\r\nContent-Type: application/octet-stream\r\n\r\n");
    postStream.Write(file_content_disposition_bytes, 0, file_content_disposition_bytes.Length);
    postStream.Write(postData, 0, postData.Length);

    // Write the ending boundary
    postStream.Write(boundary_bytes, 0, boundary_bytes.Length);
    byte[] end_boundary = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
    postStream.Write(end_boundary, 0, end_boundary.Length);

    postStream.Close();

    var asyncResult = request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
登入後複製

在此程式碼中,「userid」 " 參數與檔案資料一起傳遞。確保您的PHP Web 服務需要此格式的參數。 8,您嘗試使用 HttpClient 和 MultipartFormDataContent上傳文件,但也失敗了。資料的內容類型設定為「application/octet-stream」。 Web 服務已正確配置為處理多部分/表單資料請求。

以上是如何在 Windows Phone 8 和 Windows 8 中使用 HTTP POST Multipart/Form-Data 將檔案上傳到伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板