私はクライアント側(AngularJSを使用しています)のファイルストリームをJSONオブジェクト経由でasp.netのWeb Apiにアップロードするシナリオを持っています。 JSONオブジェクトには、1つのフィールドがファイルstreamであるいくつかのフィールドがあります。JSONオブジェクトを作成して、モデルにapi側でモデルバインドを行うWeb APIに送信します。JSONオブジェクト経由でファイルストリームをASP.NETのWeb API 2にアップロードするにはどうすればよいですか?
$scope.fileUploadData = {
TextId: 304765,
DocumentId: 0,
PatientId: 166158,
file://This is my file stream property in JSON
}
public ApiActionResult CreateDocument(DocumentVM model)
{
//Some logic here.....
}
// DocumentVM class will be as follows
public class DocumentVM
{
long TextId;
long DocumentId;
long PatientId;
Stream file;
}
サンプルコードスニペットの達成方法を教えてください。
私が試したこと: 私はたくさんのグーグルで探究しましたが、私はマルチパートフォームデータを使用するようなソリューションを見つけました。 JSONとファイルストリームが追加され、Web APIに送信されます。私は、以下のロジックを使用して複数の部分のフォームデータを抽出しました。
public async Task<ApiActionResult> CreateDocument()
{
MultipartFormDataStreamProvider provider =
new MultipartFormDataStreamProvider(Path.GetTempPath());
var result = await Request.Content.ReadAsMultipartAsync(provider);
var model= result.FormData["Metadata"];
var fileData = result.FileData;//How it will retriev the file data
}
をコントローラあなたに
以下のような、あなたのアクションのモデルに装飾することができるカスタムモデルバインダーを作成することができますストリームファイル。複数の部分からなるリクエストを作成する必要があります。 javascript側では、Fileオブジェクトを作成する必要があります。これは、マルチパートリクエストを使用してサーバーに渡されます。 – dhavalcengg
ストリームをAPIに送るために、マルチパートフォームデータ以外のオプションはありませんか? –