38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
#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 |