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

Fer*_*res 0 file-upload multipartform-data multipart asp.net-web-api

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

request.Content.ReadAsMultipartAsync(provider)
Run Code Online (Sandbox Code Playgroud)

文件已上传,但其文件名已完全更改.我读过一些关于它的说法是出于安全原因而自动制作的.无论如何,我想用真实的文件名存储文件.知道怎么做吗?

Fer*_*res 7

这个简单的覆盖解决了这个问题

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;
    }
}
Run Code Online (Sandbox Code Playgroud)