ホームページ >バックエンド開発 >C++ >Windows Phone 8 および Windows 8 で HTTP POST マルチパート/フォームデータ経由でファイルをアップロードする方法は?

Windows Phone 8 および Windows 8 で HTTP POST マルチパート/フォームデータ経由でファイルをアップロードする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-21 04:04:17570ブラウズ

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

Windows Phone 8 および Windows 8 は、HTTP POST Multipart/Form-Data を使用してファイルをサーバーにアップロードします

Windows Phone 8 または Windows 8 で HTTP POST multipart/form-data を使用してサーバーにファイルをアップロードするには、次の手順に従う必要があります:

HttpWebRequest を使用してファイルをアップロードしようとするコード スニペットが提供されました。ただし、コードには修正が必要な問題がいくつかあります:

  • var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME); このコードは、ローカル ストレージからではなく、パッケージのインストール ディレクトリからファイルを取得します。 var file = await ApplicationData.Current.LocalFolder.GetFileAsync(DBNAME); に変更する必要があります。
  • var res = await HttpPost(Util.UPLOAD_BACKUP, fileBytes); このコードは非同期 HTTP POST リクエストを開始しますが、結果を待つことはありません。 res.Wait(); を呼び出して結果を待つ必要があります。
  • 現在実装されている HttpPost メソッドは、マルチパート/フォームデータ リクエストをサポートしていません。 HttpContentMultipart インスタンスを作成し、ファイル コンテンツとその他のパラメーターをマルチパート コンテンツに追加する必要があります。

ここでは、multipart/form-data を使用してファイルをアップロードするようにコードを変更する方法の例を示します:

<code class="language-csharp">//假设您还有一个名为“userid”的字符串变量,其中包含用户 ID
private async void HttpPost(byte[] fileBytes)
{
    HttpClient httpClient = new HttpClient();
    MultipartFormDataContent multipartContent = new MultipartFormDataContent();
    HttpContent fileContent = new ByteArrayContent(fileBytes);
    multipartContent.Add(fileContent, "file", "filename.db");
    multipartContent.Add(new StringContent(userid), "userid", "userdata.txt");

    var response = await httpClient.PostAsync("http://www.myserver.com/upload.php", multipartContent);
    // ...
}</code>

Windows 8 では、HttpClient クラスを使用して、multipart/form-data を使用してファイルをアップロードできます。その方法の例を次に示します:

<code class="language-csharp">//假设您还有一个名为“userid”的字符串变量,其中包含用户 ID
public async Task Upload(byte[] fileBytes)
{
    using (HttpClient httpClient = new HttpClient())
    {
        using (MultipartFormDataContent form = new MultipartFormDataContent())
        {
            form.Add(new StringContent(username), "username");
            form.Add(new StringContent(useremail), "email");
            form.Add(new StringContent(password), "password");
            form.Add(new ByteArrayContent(fileBytes, 0, fileBytes.Length), "profile_pic", "hello1.jpg");
            HttpResponseMessage response = await httpClient.PostAsync("http://www.myserver.com/upload.php", form);
            // ...
        }
    }
}</code>

以上がWindows Phone 8 および Windows 8 で HTTP POST マルチパート/フォームデータ経由でファイルをアップロードする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。