既存の質問を調べましたが、完全に一致するものは見つかりませんでした。明らかな何かが欠けている可能性があります。もしそうなら、適切な場所に誘導してください。これが私の問題です:
バイナリ データを WCF バックエンドにアップロードする必要がある ExtJs フロントとアプリケーションがあります。フロントエンドには次のコードがあります (Ext.form.field.File コントロールを使用して、ユーザーがファイルを選択できるようにします)
// Create a dummy form in the controller after user selected a file
var form = Ext.create('Ext.form.Panel', {
items: [ my_file_field ]
});
form.getForm().submit({
method: 'POST',
url: 'myservice.url',
...
});
バックエンドには、次の契約があります。
namespace MyApp
{
[ServiceContract]
public interface ITransferService
{
[OperationContract]
[WebInvoke(UriTemplate = "UploadImage", Method = "POST")]
void SaveImage(Stream buffer);
}
}
1つの小さなことを除いて「正常に」機能します。内部のストリームではSaveImage()
、ユーザーが選択したファイルからバイナリデータだけでなく、一連のヘッダーとエンコードされたフィールドも取得します。
------WebKitFormBoundary26wAkvwGTnAMELFM
Content-Disposition: form-data; name="ext-gen1654"; filename="photo.png"
Content-Type: application/octet-stream
..... binary data goes here ....
------WebKitFormBoundary26wAkvwGTnAMELFM--
私は何が欠けていますか?クリーンなバイナリ データを取得するためにサービスの契約を変更するにはどうすればよいですか?