1

ファイル入力を使用せずにファイルのアップロードを偽造したい。ファイルのコンテンツは文字列から生成されます。つまり、コンテンツ タイプが "multipart/form-data" のサーバーに文字列を投稿したいと考えています。

しかし、サーバーは別のドメインにあり、CORS をサポートしていないため、XMLHttpRequest を使用できませんでした。通常のフォームポストのみを使用してこれを行うことは可能ですか?

4

1 に答える 1

0

それは実際にはいい質問です。私の謙虚な意見では、あなたが探しているものは、以下にリストされているようなさまざまな理由で不可能です:

  • あなたは確かに次のようなHTMLフォームを持つことができます:

    <form ....>
    <input id="blah" type="input" name="nameblah" ..>
    ...
    </form>
    

    しかし、ご存知のように、選択したファイルの「コンテンツ」にアクセス/変更することはできません。即時の解決策は、代替として非表示フィールドを使用してを設定することenctype=multipart/form-dataですが、非表示フィールドの場合、ブラウザーは適切なContent-Dispositionヘッダーを設定しません。

  • リクエスト本文全体を手動で構築するAJAX呼び出しを行うこともできますが、すでに述べたように、それはクロスドメイン呼び出しになります。通常のバイパス手法が適用されます。

解決策は、HTMLを提供するサーバーに、スカイドライブ要求を実行させることです。その場合、HTMLフォームまたはjavascriptを使用してファイルをアップロードします。その後、ファイルはスカイドライブサーバーに「転送」されます。

Javascriptを介して試行している場合は、multipart/form-dataフォーマットを正しく取得してください。これがRFCです

于 2012-07-01T16:19:55.033 に答える