#if !Nancy using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace 电子展板.Utility.Web { public class WithExtensionMultipartFormDataStreamProvider : MultipartFormDataStreamProvider { public string guid { get; set; } public string OriginalName { get; set; } public string Ext { get; set; } public WithExtensionMultipartFormDataStreamProvider(string rootPath, string guidStr) : base(rootPath) { guid = guidStr; } public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers) { OriginalName = !string.IsNullOrWhiteSpace(headers.ContentDisposition.FileName) ? GetValidFileName(headers.ContentDisposition.FileName) : ""; Ext = !string.IsNullOrWhiteSpace(OriginalName) ? Path.GetExtension(GetValidFileName(OriginalName)) : ""; return guid + Ext; } private string GetValidFileName(string filePath) { char[] invalids = System.IO.Path.GetInvalidFileNameChars(); return string.Join("_", filePath.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd('.'); } } } #endif