既存の質問を見ましたが、完全一致は見つかりませんでした。多分私は何か明白なものを見逃しています。もしそうなら、適切な場所で私を指示してください。ここに私の問題があります:ExtJsフロントエンドからのファイルアップロードを受信するWCFサービス契約
私はExtJsのフロントと、バイナリデータをWCFのバックエンドにアップロードする必要があるアプリケーションがあります。
namespace MyApp
{
[ServiceContract]
public interface ITransferService
{
[OperationContract]
[WebInvoke(UriTemplate = "UploadImage", Method = "POST")]
void SaveImage(Stream buffer);
}
}
:私は、次のコードを持っているフロントエンドで、私は、次の契約を持っているバックエンドで
// 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',
...
});
を(私は、ユーザーがファイルを選択できるようにExt.form.field.Fileコントロールを使用します)これは、1つの小さなことを除いて「罰金の作品:ストリームにSaveImage()
の内側に、私はバイナリ選択したファイルの利用者からのデータだけでなく、ヘッダの束とエンコードされたフィールドだけでなく、取得する:iがm午前何
------WebKitFormBoundary26wAkvwGTnAMELFM
Content-Disposition: form-data; name="ext-gen1654"; filename="photo.png"
Content-Type: application/octet-stream
..... binary data goes here ....
------WebKitFormBoundary26wAkvwGTnAMELFM--
を発行?クリーンなバイナリデータを取得するために、サービスの契約を変更するにはどうすればよいですか?
同じようにエンコードされた他のパラメータはどうですか? – sha
@shaこれを行うだけです: 'HttpContext.Current.Request.Form.Get(" myParam ")'。あるいは、クエリ文字列 'HttpContext.Current.Request.QueryString.Get(" myParam ")'からそれらを読み取ることもできます。 –