次のようなフォームを使用してファイルをアップロードしたいと思います。
<form action="http://127.0.0.1:8090/MyService/"
method="post" enctype="multipart/form-data">
<p>Select File<br>
<input name="Datei" type="file" size="50">
<input type="submit" value="Submit">
</p>
</form>
そして、次のような wcf サービスを用意します。
[ServiceContract]
public interface IDocumentConverter
{
[OperationContract, WebInvoke(UriTemplate = "/", Method = "POST")]
void UploadFile(Stream fileContents);
}
これには2つの問題があります。ストリームをファイルに書き戻すと、ファイル データだけでなく、いくつかの http も含まれます。これは奇妙に思えます。生のファイルデータを取得する良い方法はありますか?:
-----------------------------67832811011758
Content-Disposition: form-data; name="Datei"; filename="haha.jpg"
Content-Type: image/jpeg
ÿØÿà...
元のファイルは次のようになります。
ÿØÿà...
次に、ファイル名を wcf に入れたいと思います。理想的には次のようになります。
[ServiceContract]
public interface IDocumentConverter
{
[OperationContract, WebInvoke(UriTemplate = "/{filename}", Method = "POST")]
void UploadFile(string filename, Stream fileContents);
}
しかし、フォーム/入力を使用してファイル名をURLに統合する方法がわからないため、これは機能しません。