File upload 使用WebApi MultipartFormDataStreamProvider上载文件后无法更改文件名

File upload 使用WebApi MultipartFormDataStreamProvider上载文件后无法更改文件名,file-upload,asp.net-web-api,multipartform-data,multipart,File Upload,Asp.net Web Api,Multipartform Data,Multipart,我使用WebApi上传文件,但当我运行 request.Content.ReadAsMultipartAsync(provider) 文件已上载,但其文件名已完全更改。 我读到一篇文章说,出于安全考虑,它是自动生成的。无论如何,我想用真实的文件名存储文件。你知道怎么做吗?这个简单的覆盖可以解决这个问题 public class MyMultipartFormDataStreamProvider : MultipartFormDataStreamProvider { public MyM

我使用WebApi上传文件,但当我运行

request.Content.ReadAsMultipartAsync(provider)
文件已上载,但其文件名已完全更改。
我读到一篇文章说,出于安全考虑,它是自动生成的。无论如何,我想用真实的文件名存储文件。你知道怎么做吗?

这个简单的覆盖可以解决这个问题

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

    public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers)
    {
        // override the filename which is stored by the provider (by default is bodypart_x)
        string originalFileName = headers.ContentDisposition.FileName.Trim('\"');

        return originalFileName;
    }
}