搜尋此網誌

2013-04-26

MultipartMemoryStreamProvider

using MultipartFormDataStreamProvider and ReadAsMultipartAsync
Issues with MultipartFormDataStreamProvider
submitting files to a web api
File upload using MultipartMemoryStreamProvider

原生的MultipartStreamProvider,其GetLocalFileName()會使用Guid來命名,
若要使用自己的命名方式,需自行實作:
        public virtual string GetLocalFileName(HttpContentHeaders headers)
        {
            if (headers == null)
            {
                throw Error.ArgumentNull("headers");
            }

            return String.Format(CultureInfo.InvariantCulture, "BodyPart_{0}", Guid.NewGuid());
        }

A guide to asynchronous file uploads in ASP.NET Web API RTM
Dealing with the frustrations of trying to test the ASP.NET Web API MultipartFormDataStreamProvider.
    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) ? headers.ContentDisposition.FileName : "NoName";
            return name.Replace("\"", string.Empty);
        }
    }


沒有留言: