2011-10-24 4 views
1

アップロード用に選択したさまざまなファイル/データのコレクションであるMIMEマルチパートストリームを作成しています。次に、asp.net MVC 3を使用してこのストリームをURLにプットします(MVCビットは質問とは無関係ですが、同様のことがすべてのASP.NETに適用されます).HttpFileCollectionBaseオブジェクトとしてサーバー上に入ります基本的にはHttpPostedFileBaseオブジェクトの集合です)。HttpFileCollectionBaseは他のMIMEマルチパートヘッダーフィールドにアクセスできません

これはすべて問題なく動作します。

ただし、HttpPostedFileBaseは、MIME 'media type'と 'filename' フィールドにのみアクセスできます。

のContent-処分:私は

のContent-説明に入れていた他のデータ持つMIMEマルチパートで

ヘッダを - しかし、アクセスする方法はないように思えますこれらはサーバ側にあります。明らかに私はメディアの種類とファイル名が最も一般的なフィールドであることを認識しているので、より難解なMIMEフィールドを取得するためにいくつかのフープを飛び越える必要はありません。しかし、私はそれらにアクセスする方法が全く見えません。自分のMIMEマルチパートデコードエンジンをASP.NET/MVCフレームワークにフックする必要がありますか?もしそうなら、フックはどこにありますか?そこにはMIMEデコーダを書かなくてもこれを行うライブラリがあります。

答えて

0

Request.InputStreamプロパティを使用して、生のリクエストボディデータにアクセスできます。リクエストHTTPヘッダーにアクセスするには、Request.Headersプロパティを使用できます。

+0

しかし、カスタムMIMEマルチパートデコーダを作成する必要がありますか?私はその痛みを避けることを望んでいました。また、私はASP.NETのスタッフがメモリ全体に要求(私は数メガバイト)を格納するのではなく、ファイルオブジェクトなどに大量の要求を分割するように指示しています。私は何もせずにそのすべてを使うことを望んでいた! –

+0

@AndrewPatterson、はい、カスタムMIMEパーサーを作成する必要があります。私は、あなたが望んでいることは可能ではないと恐れています。 ASP.NETは既にmultipart/form-dataパーサーを作成し、 'HttpFileCollectionBase'クラスの形式で提供しています。それがあなたのニーズに合っていない場合、私はあなた自身のロールを取ること以外に他の選択肢がないことを恐れています。 –

+0

これはあまりにも浪費しそうです.Microsoftのマルチパートデコードから作成された各HttpPostedFileオブジェクトには、MicrosoftがRequest.Headersに似たフィールドを置くことはできません。私は他のMIMEデコードライブラリを調べて、これを自分で実装することを避けることができるかどうかを確認します。 –

関連する問題