.net Web Api 2文件上传

时间:2014-07-14 17:34:54

标签: .net asp.net-web-api2

我尝试使用web api上传文件,并按照网站中的示例进行操作:

http://www.strathweb.com/2012/08/a-guide-to-asynchronous-file-uploads-in-asp-net-web-api-rtm/

效果很好......但如果文件存在,我不想覆盖文件。基本上如果文件已经存在,我想用时间戳保存文件。

有什么想法吗?

由于

我发布问题后几分钟,我发现了。这是答案,非常简单......我只是有一个愚蠢的时刻。

  public class CustomMultipartFormDataStreamProvider : MultipartFormDataStreamProvider
{
    private readonly string _rootDirectory = 'filesRoot';
    public CustomMultipartFormDataStreamProvider(string path) : base(path)
    {
    }

    public override string GetLocalFileName(HttpContentHeaders headers)
    {
        var filename = headers.ContentDisposition.FileName.Replace("\"", string.Empty);
        if (File.Exists(_rootDirectory + filename))
        {
            var fName = Path.GetFileNameWithoutExtension(_rootDirectory + filename);
            var extension = Path.GetExtension(_rootDirectory + filename); 
            return fName + '_' + DateTime.Now.Ticks + extension;
        }
        else
            return filename;
    }
}

1 个答案:

答案 0 :(得分:1)

使用File.Exisits来测试文件是否已存在以及是否使用DateTime.Now.Ticks附加时间戳