Asp.net mvc 如何在asp.net web api中成功上载后获取发布的文件名

Asp.net mvc 如何在asp.net web api中成功上载后获取发布的文件名,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,我正在开发asp.NETMVCWebAPI。我正试图通过post请求上传一张图像,比如 <form action="/api/mypictures/12" method="post" enctype="multipart/form-data"> <label for="somefile">File</label> <input name="somefile" type="file" /> <in

我正在开发asp.NETMVCWebAPI。我正试图通过post请求上传一张图像,比如

<form action="/api/mypictures/12" method="post" enctype="multipart/form-data">
        <label for="somefile">File</label>
        <input name="somefile" type="file" />
        <input type="submit" value="Submit" />
    </form>
我的CustomMultipartFormDataStreamProvider类如下:

public class CustomMultipartFormDataStreamProvider : MultipartFormDataStreamProvider
    {
        public CustomMultipartFormDataStreamProvider(string path)
            : base(path)
        { }

        public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers)
        {
            var name = !string.IsNullOrWhiteSpace(headers.ContentDisposition.FileName) ? DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss")+"_"+headers.ContentDisposition.FileName : "NoName";
            return name.Replace("\"", string.Empty); 
        }
    }

上面的过程很好地将文件保存到上述文件夹中。但在成功上传图像后,我需要将上传的文件名存储到我的数据库表中。成功上传后,如何获取发布文件的文件名。请指导我。

您可以获得如下文件名:

var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(
                    t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);


            CustomMultipartFormDataStreamProvider resultProvider = t.Result;
            string fileName = t.FileData.First().LocalFileName;
                    }
                );
var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(
                    t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);


            CustomMultipartFormDataStreamProvider resultProvider = t.Result;
            string fileName = t.FileData.First().LocalFileName;
                    }
                );