0

サーバーへのファイルの投稿をサポートする次の .net Web API コントローラー メソッドがあります。

    public Task<HttpResponseMessage> PostFile()
            {
                var request = Request;
                if (!request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.UnsupportedMediaType));
                }

                var root = HttpContext.Current.Server.MapPath("~/App_Data/Uploads");
                var provider = new MultipartFileStreamProvider(root);

                var task = request.Content.ReadAsMultipartAsy

nc(provider).ContinueWith(o =>
            {
                var finfo = new FileInfo(provider.FileData.First().LocalFileName);

                var guid = Guid.NewGuid().ToString();

                File.Move(finfo.FullName,
                    Path.Combine(root,
                        guid + "_" + provider.FileData.First().Headers.ContentDisposition.FileName.Replace("\"", "")));

                return new HttpResponseMessage
                {
                    Content = new StringContent("File upload.")
                };
            });

            return task;
        }

これはうまく機能しますが、投稿の一部としてファイルに関するメタデータを含めることができるようにしたいと考えています。現時点では、次のようなメタデータ用の別の Web API メソッドがあります。

  public HttpResponseMessage PostTAG(TAG tag)

タグ オブジェクトの情報を取得し、データベースに保存します。ファイルとメタデータを 1 回のリクエストで一緒に送信できれば、API クライアントにとってはるかに簡単になります。これは .net Web API で可能ですか。

4

1 に答える 1