私はアプリケーションを構築するのにAngularJSを使用しています。その中には、ユーザーが情報を記入できる形式があります。 WebAPIを使用してデータベースにPOSTするオブジェクトが作成されます。WebAPIでファイルを添付してオブジェクトをPOSTする方法は?
ここ角度コードです:
$scope.test_object =
{
'Title': $scope.test_object.title,
'Description': $scope.test_object.description,
};
// POST to the database
$http.post(some_url, JSON.stringify($scope.test_object)).then(function (response) {
// do something
}
);
そして、ここでは、私のクラスは、Visual Studioにあります:
public class ClassName
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
は、それが何の問題もなく必要としてこれが動作します。私の問題は、フォームにファイルを添付できることです。
public class FileUploadController : ApiController
{
[Route("api/upload")]
public async Task<HttpResponseMessage> Post()
{
try
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
//Save To this server location
var uploadPath = HttpContext.Current.Server.MapPath("~/Data");
//Save file via CustomUploadMultipartFormProvider
var multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath);
// Read the MIME multipart asynchronously
await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);
// Show all the key-value pairs.
foreach (var key in multipartFormDataStreamProvider.FormData.AllKeys)
{
foreach (var val in multipartFormDataStreamProvider.FormData.GetValues(key))
{
Console.WriteLine(string.Format("{0}: {1}", key, val));
}
}
//In Case you want to get the files name
//string localFileName = multipartFormDataStreamProvider
// .FileData.Select(multiPartData => multiPartData.LocalFileName).FirstOrDefault();
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception e)
{
return new HttpResponseMessage(HttpStatusCode.NotImplemented)
{
Content = new StringContent(e.Message)
};
}
}
}
私はオンラインこのコードを発見し、それは、ファイルを送信するために動作します:私はここのコードは、ファイルを送信するためにVisual Studioでのコントローラを持っています。これにより、任意のファイルが指定されたフォルダ(/ Data)に送信されます。
私の質問は、オブジェクトと添付ファイルの間の関係をどのように作成するのですか?各オブジェクトにどのファイルが関連付けられているかを確認するにはどうすればよいですか?どういうわけかオブジェクトIDをファイルとともに送信しますか?
ありがとうございました。