ファイルのアップロードにFlow.JS http://flowjs.github.io/ng-flow/を使用しています。
私の要件は、次のデータをすべて1 回の保存ボタンのクリックで送信する必要があることです。
- 複数のファイル
- ファイルとともに 2 つの文字列値。
次の方法はうまくいきます。
ajax 呼び出しのアップロード
$scope.UploadFiles = function (flows) {
var data = new FormData();
$.each(flows.files, function (i, flowfile) {
data.append('file' + i, flowfile.file);
});
data.append('message', $scope.Subject);
data.append('subject', $scope.Message);
$.ajax({
url: 'url\savedata',
data: files,
cache: false,
contentType: false,
processData: false,
type: 'POST'
});
}
そして私のMVCコントローラー
public JsonResult Savedata()
{
var httpRequest = System.Web.HttpContext.Current.Request;
if(httpRequest.Files.Count != 0)
{
var collection = 0;
foreach (string file in httpRequest.Files)
{
//manipulate file data
}
}
var message = httpRequest.Forms['message'];
var subject= httpRequest.Forms['subject'];
}
これはすべて正常に機能します。フォームデータを使用する代わりにこれを行うためのより良い方法があるかどうかを知りたいのですが、代わりにデータモデルを使用してこのすべてのデータを送信する可能性があります。これは、一部の MVC データ検証で必要になるためです。