2008-09-09 12 views
18

ファイルを受け取り、ディスクに書き込むためのWCFサービスをビルドしました。フロントエンドはSWFUploadを持つページで構成され、クライアント側でアップロードを処理します。どうやら、SWFUploadはコンテンツタイプ:multipart/form-dataでデータをポストします。ファイルをWCFサービスにアップロードする方法は?

私はこの大丈夫だと思いますが、サービス側ではエラーが発生します。エラーは、 "ProtocolException" text/xmlが必要です。私はバインディングで異なるメッセージのエンコーディングを試みましたが、何も動作していないようです。

このファイルをmultipart/form-dataを使用してアップロードするにはどうすればよいですか?

答えて

9

@jdiaz、

@JasonSを使用すると、バイトストリームとして、それを転送する必要があるファイルをアップロードするには、右にあります。 WCF streamingを使用する必要があります。たとえば、WCF経由でファイルをアップロードする方法についてはan articleを参照してください。http://kjellsj.blogspot.com

+1

これは本当に役に立ちましたか?私はまだブラウザからアップロードする方法を知らない。私が今までに見つけたすべてのソリューションは、.NETクライアントをWCFにアップロードするために使用します。 SWFUploadではありません。 – tishma

0

ファイルをバイト配列としてWCFに転送する必要があると思います。 SWFUploadの投稿を処理し、サービスに送る前にバイト配列に変換する必要があります。

2

標準的にしたい場合は、おそらくMTOMです。これを使用して、MIMEマルチパートメッセージを作成できます。

これで、ストリームとしてファイルを読み込んで、要求のパラメータの1つに入れる必要があります。

1

WCFサービスが.NET Framework 3.5を対象とし、IISが.NET Framework 4.0で実行されている可能性があります。この場合(フレームワークの不一致)、サービスを変更する必要があります。

関連する問題