【问题标题】:How to validate file uploads in ASP.NET Web API如何在 ASP.NET Web API 中验证文件上传
【发布时间】:2012-08-28 21:10:05
【问题描述】:

我想在 ASP.NET Web API 中验证文件上传的文件扩展名(注意:我意识到这不是一个完整的验证方法)。

我正在使用MultipartFormDataStreamProvider 来处理已发布的文件。由于在提供程序处理文件之前Request.Content.Headers.ContentDisposition 为空(通过ReadAsMultipartAsync),因此验证请求文件名的最佳位置在哪里?

【问题讨论】:

    标签: asp.net-web-api


    【解决方案1】:

    您可以从 MultipartFormDataStreamProvider 继承并覆盖 GetLocalFileName(在将内容读入流之后运行)或 GetStream(在将内容读入流之前运行)。在这两种情况下,您都可以访问headers.ContentDisposition.FileName

    public class CustomMultipartFormDataStreamProvider : MultipartFormDataStreamProvider
    {
        public CustomMultipartFormDataStreamProvider(string path)
            : base(path)
        {
        }
    
        public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers)
        {
            //validate headers.ContentDisposition.FileName as it will have the name+extension
            //then do something (throw error, continue with base or implement own logic)
        }
    
        public override Stream GetStream(HttpContent parent, System.Net.Http.Headers.HttpContentHeaders headers)
        {
            //validate headers.ContentDisposition.FileName as it will have the name+extension
    
            //then do something (throw error, continue with base or implement own logic)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2010-12-27
      • 2012-10-30
      • 2016-12-16
      • 1970-01-01
      相关资源
      最近更新 更多