ownin下的webapi上传图片

1、参考https://www.cnblogs.com/tracyjfly/p/8042187.html

          https://blog.csdn.net/molixiangshi/article/details/80259082

         https://blog.csdn.net/yl2isoft/article/details/64496069

         https://www.cnblogs.com/turnip/p/13754450.html

2、后台代码

/// <summary>
/// 上传人员图片
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<ResultInfo> ImportEmployeePhoto()
{
	var result = new ResultInfo();

	try
	{
		// 检查是否是 multipart/form-data
		if (!Request.Content.IsMimeMultipartContent("form-data"))
			throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);

		// 文件保存目录路径
		string rootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot");
		string saveTempPath = Path.Combine(rootPath, "Photos");
		if (!Directory.Exists(saveTempPath))
			Directory.CreateDirectory(saveTempPath);

		#region 写入到文件
		string code = "";
		string num = "";
		string tempFileName = "";
		Stream ImageStream = null;

		var allowType = new List<string> { "image/jpeg", "image/png" };
		var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync();
		foreach (var content in multipartMemoryStreamProvider.Contents)
		{
			string name = content.Headers.ContentDisposition.Name.Replace("\"", "");
			if (name.ToLower() == "code")
			{
				code = await GetContentValue(content, "code");
			}
			if (name.ToLower() == "num")
			{
				num = await GetContentValue(content, "num");
			}

			if (content.Headers.ContentType == null)
				continue;

			if (!allowType.Contains(content.Headers.ContentType.MediaType))
			{
				SetErrorResult(result, "只能上传jpeg或png格式的图片文件");
				return result;
			}

			if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName))
			{
				tempFileName = content.Headers.ContentDisposition.FileName.Replace("\"", "");                       

				ImageStream = await content.ReadAsStreamAsync();                        
			}
		}
		#endregion

		if (string.IsNullOrEmpty(code))
		{
			SetErrorResult(result, "请传递code!");
			return result;
		}

		if (string.IsNullOrEmpty(num))
		{
			SetErrorResult(result, "请传递num!");
			return result;
		}

		if (ImageStream == null)
		{
			SetErrorResult(result, "请上传人员头像图片!");
			return result;
		}

		tempFileName = Path.GetFileNameWithoutExtension(num).PadLeft(6, '0') + Path.GetExtension(tempFileName);
		tempFileName = code + "_" + tempFileName;
		string newFileName = Path.Combine(saveTempPath, tempFileName);
		using (var fs = System.IO.File.Create(newFileName))
		{
			ImageStream.CopyTo(fs);
			fs.Flush();
			fs.Close();
			ImageStream.Dispose();
		}                
	}
	catch (Exception e)
	{
		SetErrorResult(result, e);
	}

	return result;
}

private async Task<string> GetContentValue(HttpContent content, string contentKey)
{
	using (Stream stream = await content.ReadAsStreamAsync())
	{
		using (var ms = new MemoryStream())
		{
			stream.CopyTo(ms);
			ms.Flush();

			byte[] byteCode = ms.ToArray();
			ms.Close();

			return System.Text.Encoding.UTF8.GetString(byteCode);
		}
	}
}

3、前端作的测试页面,需要放在wwwroot目录下

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" charset="utf-8" />
    <link rel="stylesheet" href="Content/jquery-easyui-1.5.4.4/themes/default/easyui.css" />
    <link rel="stylesheet" href="Content/jquery-easyui-1.5.4.4/themes/icon.css" />
    <script src="Content/jquery-easyui-1.5.4.4/jquery.min.js"></script>
    <script src="Content/jquery-easyui-1.5.4.4/jquery.easyui.min.js"></script>
</head>
<body>
    <div id="student_sdlg" class="easyui-dialog" style="width:530px;height:3000px;padding:10px 20px;" closed="false"
         buttons="#student-dlg-buttons" closable="false">
        <form id="student_sfm" method="post" enctype="multipart/form-data">
            <table cellspacing="8">
                <tr>
                    <td>编号:</td>
                    <td colspan="3">
                        <input id="code" name="code" class="easyui-text" style="width:360px;" />
                    </td>
                </tr>
                <tr>
                    <td>卡编号:</td>
                    <td colspan="3">
                        <input id="num" name="num" class="easyui-text" style="width:360px;" />
                    </td>
                </tr>
                <tr>
                    <td>图 片:</td>
                    <td colspan="3">
                        <input id="image" name="image" class="easyui-filebox" style="width:360px;" data-options="buttonText:'浏 览'" />
                    </td>
                </tr>
            </table>
        </form>
    </div>
 
    <div id="student-dlg-buttons">
        <a href="javascript:saveStudent();" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
    </div>
 
	<script>
		// 保存图片			
		var formData = new FormData();
		var code = $("#code").val();
		var num = $("#num").val();
		//$('#nn').textbox('getValue')
		var files = $("#image").next().find('input[type=file]')[0].files;

		formData.append('code', code);
		formData.append('num', num);
		formData.append('imageFile', files[0]);
		$.ajax({//jQuery方法,此处可以换成其它请求方式
			//url: '../api/Employee/ImportEmployeePhoto',
			url: '../api/Employee/ImportEmployeePhoto',
			type: "post",
			data: formData,
			processData: false,//不去处理发送的数据
			contentType: false,//不去设置Content-Type请求头
			success: function (result) {
				if (result && result.isSuccess) {
					alert("上传成功!");
				} else {
					alert("上传失败" + result.msg)
				}
			},
			//请求失败,包含具体的错误信息
			error: function (e) {
				alert(e);
			}
		});  
		}

		// 清空表单数据
		function resetForm() {
			$("#student_sfm").form('clear');
		}
	</script>
</body>
</html>

4、 访问静态文件配置

public void Configuration(IAppBuilder app)
{
	//静态文件请求
	//http://localhost:16201/root/index.html
	string rootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot");
	if (Directory.Exists(rootPath))
	{
		app.UseStaticFiles(new StaticFileOptions()
		{
			FileSystem = new PhysicalFileSystem(rootPath),
			RequestPath = new PathString("/root"),
            ContentTypeProvider = new FileExtensionContentTypeProvider(),
		});
	}
}

5、FileExtensionContentTypeProvider

public class FileExtensionContentTypeProvider : IContentTypeProvider
    {
        private static Dictionary<string, string> AllowMIME = new Dictionary<string, string>()
        {
            { ".323", "text/h323" },
            { ".3g2", "video/3gpp2" },
            { ".3gp2", "video/3gpp2" },
            { ".3gp", "video/3gpp" },
            { ".3gpp", "video/3gpp" },
            { ".aac", "audio/aac" },
            { ".aaf", "application/octet-stream" },
            { ".aca", "application/octet-stream" },
            { ".accdb", "application/msaccess" },
            { ".accde", "application/msaccess" },
            { ".accdt", "application/msaccess" },
            { ".acx", "application/internet-property-stream" },
            { ".adt", "audio/vnd.dlna.adts" },
            { ".adts", "audio/vnd.dlna.adts" },
            { ".afm", "application/octet-stream" },
            { ".ai", "application/postscript" },
            { ".aif", "audio/x-aiff" },
            { ".aifc", "audio/aiff" },
            { ".aiff", "audio/aiff" },
            { ".application", "application/x-ms-application" },
            { ".art", "image/x-jg" },
            { ".asd", "application/octet-stream" },
            { ".asf", "video/x-ms-asf" },
            { ".asi", "application/octet-stream" },
            { ".asm", "text/plain" },
            { ".asr", "video/x-ms-asf" },
            { ".asx", "video/x-ms-asf" },
            { ".atom", "application/atom+xml" },
            { ".au", "audio/basic" },
            { ".avi", "video/x-msvideo" },
            { ".axs", "application/olescript" },
            { ".bas", "text/plain" },
            { ".bcpio", "application/x-bcpio" },
            { ".bin", "application/octet-stream" },
            { ".bmp", "image/bmp" },
            { ".c", "text/plain" },
            { ".cab", "application/vnd.ms-cab-compressed" },
            { ".calx", "application/vnd.ms-office.calx" },
            { ".cat", "application/vnd.ms-pki.seccat" },
            { ".cdf", "application/x-cdf" },
            { ".chm", "application/octet-stream" },
            { ".class", "application/x-java-applet" },
            { ".clp", "application/x-msclip" },
            { ".cmx", "image/x-cmx" },
            { ".cnf", "text/plain" },
            { ".cod", "image/cis-cod" },
            { ".cpio", "application/x-cpio" },
            { ".cpp", "text/plain" },
            { ".crd", "application/x-mscardfile" },
            { ".crl", "application/pkix-crl" },
            { ".crt", "application/x-x509-ca-cert" },
            { ".csh", "application/x-csh" },
            { ".css", "text/css" },
            { ".csv", "application/octet-stream" },
            { ".cur", "application/octet-stream" },
            { ".dcr", "application/x-director" },
            { ".deploy", "application/octet-stream" },
            { ".der", "application/x-x509-ca-cert" },
            { ".dib", "image/bmp" },
            { ".dir", "application/x-director" },
            { ".disco", "text/xml" },
            { ".dlm", "text/dlm" },
            { ".doc", "application/msword" },
            { ".docm", "application/vnd.ms-word.document.macroEnabled.12" },
            { ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" },
            { ".dot", "application/msword" },
            { ".dotm", "application/vnd.ms-word.template.macroEnabled.12" },
            { ".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" },
            { ".dsp", "application/octet-stream" },
            { ".dtd", "text/xml" },
            { ".dvi", "application/x-dvi" },
            { ".dvr-ms", "video/x-ms-dvr" },
            { ".dwf", "drawing/x-dwf" },
            { ".dwp", "application/octet-stream" },
            { ".dxr", "application/x-director" },
            { ".eml", "message/rfc822" },
            { ".emz", "application/octet-stream" },
            { ".eot", "application/vnd.ms-fontobject" },
            { ".eps", "application/postscript" },
            { ".etx", "text/x-setext" },
            { ".evy", "application/envoy" },
            { ".fdf", "application/vnd.fdf" },
            { ".fif", "application/fractals" },
            { ".fla", "application/octet-stream" },
            { ".flr", "x-world/x-vrml" },
            { ".flv", "video/x-flv" },
            { ".gif", "image/gif" },
            { ".gtar", "application/x-gtar" },
            { ".gz", "application/x-gzip" },
            { ".h", "text/plain" },
            { ".hdf", "application/x-hdf" },
            { ".hdml", "text/x-hdml" },
            { ".hhc", "application/x-oleobject" },
            { ".hhk", "application/octet-stream" },
            { ".hhp", "application/octet-stream" },
            { ".hlp", "application/winhlp" },
            { ".hqx", "application/mac-binhex40" },
            { ".hta", "application/hta" },
            { ".htc", "text/x-component" },
            { ".htm", "text/html" },
            { ".html", "text/html" },
            { ".htt", "text/webviewhtml" },
            { ".hxt", "text/html" },
            { ".ical", "text/calendar" },
            { ".icalendar", "text/calendar" },
            { ".ico", "image/x-icon" },
            { ".ics", "text/calendar" },
            { ".ief", "image/ief" },
            { ".ifb", "text/calendar" },
            { ".iii", "application/x-iphone" },
            { ".inf", "application/octet-stream" },
            { ".ins", "application/x-internet-signup" },
            { ".isp", "application/x-internet-signup" },
            { ".IVF", "video/x-ivf" },
            { ".jar", "application/java-archive" },
            { ".java", "application/octet-stream" },
            { ".jck", "application/liquidmotion" },
            { ".jcz", "application/liquidmotion" },
            { ".jfif", "image/pjpeg" },
            { ".jpb", "application/octet-stream" },
            { ".jpe", "image/jpeg" },
            { ".jpeg", "image/jpeg" },
            { ".jpg", "image/jpeg" },
            { ".js", "application/javascript" },
            { ".jsx", "text/jscript" },
            { ".latex", "application/x-latex" },
            { ".lit", "application/x-ms-reader" },
            { ".lpk", "application/octet-stream" },
            { ".lsf", "video/x-la-asf" },
            { ".lsx", "video/x-la-asf" },
            { ".lzh", "application/octet-stream" },
            { ".m13", "application/x-msmediaview" },
            { ".m14", "application/x-msmediaview" },
            { ".m1v", "video/mpeg" },
            { ".m2ts", "video/vnd.dlna.mpeg-tts" },
            { ".m3u", "audio/x-mpegurl" },
            { ".m4a", "audio/mp4" },
            { ".m4v", "video/mp4" },
            { ".man", "application/x-troff-man" },
            { ".manifest", "application/x-ms-manifest" },
            { ".map", "text/plain" },
            { ".mdb", "application/x-msaccess" },
            { ".mdp", "application/octet-stream" },
            { ".me", "application/x-troff-me" },
            { ".mht", "message/rfc822" },
            { ".mhtml", "message/rfc822" },
            { ".mid", "audio/mid" },
            { ".midi", "audio/mid" },
            { ".mix", "application/octet-stream" },
            { ".mmf", "application/x-smaf" },
            { ".mno", "text/xml" },
            { ".mny", "application/x-msmoney" },
            { ".mov", "video/quicktime" },
            { ".movie", "video/x-sgi-movie" },
            { ".mp2", "video/mpeg" },
            { ".mp3", "audio/mpeg" },
            { ".mp4", "video/mp4" },
            { ".mp4v", "video/mp4" },
            { ".mpa", "video/mpeg" },
            { ".mpe", "video/mpeg" },
            { ".mpeg", "video/mpeg" },
            { ".mpg", "video/mpeg" },
            { ".mpp", "application/vnd.ms-project" },
            { ".mpv2", "video/mpeg" },
            { ".ms", "application/x-troff-ms" },
            { ".msi", "application/octet-stream" },
            { ".mso", "application/octet-stream" },
            { ".mvb", "application/x-msmediaview" },
            { ".mvc", "application/x-miva-compiled" },
            { ".nc", "application/x-netcdf" },
            { ".nsc", "video/x-ms-asf" },
            { ".nws", "message/rfc822" },
            { ".ocx", "application/octet-stream" },
            { ".oda", "application/oda" },
            { ".odc", "text/x-ms-odc" },
            { ".ods", "application/oleobject" },
            { ".oga", "audio/ogg" },
            { ".ogg", "video/ogg" },
            { ".ogv", "video/ogg" },
            { ".ogx", "application/ogg" },
            { ".one", "application/onenote" },
            { ".onea", "application/onenote" },
            { ".onetoc", "application/onenote" },
            { ".onetoc2", "application/onenote" },
            { ".onetmp", "application/onenote" },
            { ".onepkg", "application/onenote" },
            { ".osdx", "application/opensearchdescription+xml" },
            { ".otf", "font/otf" },
            { ".p10", "application/pkcs10" },
            { ".p12", "application/x-pkcs12" },
            { ".p7b", "application/x-pkcs7-certificates" },
            { ".p7c", "application/pkcs7-mime" },
            { ".p7m", "application/pkcs7-mime" },
            { ".p7r", "application/x-pkcs7-certreqresp" },
            { ".p7s", "application/pkcs7-signature" },
            { ".pbm", "image/x-portable-bitmap" },
            { ".pcx", "application/octet-stream" },
            { ".pcz", "application/octet-stream" },
            { ".pdf", "application/pdf" },
            { ".pfb", "application/octet-stream" },
            { ".pfm", "application/octet-stream" },
            { ".pfx", "application/x-pkcs12" },
            { ".pgm", "image/x-portable-graymap" },
            { ".pko", "application/vnd.ms-pki.pko" },
            { ".pma", "application/x-perfmon" },
            { ".pmc", "application/x-perfmon" },
            { ".pml", "application/x-perfmon" },
            { ".pmr", "application/x-perfmon" },
            { ".pmw", "application/x-perfmon" },
            { ".png", "image/png" },
            { ".pnm", "image/x-portable-anymap" },
            { ".pnz", "image/png" },
            { ".pot", "application/vnd.ms-powerpoint" },
            { ".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12" },
            { ".potx", "application/vnd.openxmlformats-officedocument.presentationml.template" },
            { ".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12" },
            { ".ppm", "image/x-portable-pixmap" },
            { ".pps", "application/vnd.ms-powerpoint" },
            { ".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" },
            { ".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" },
            { ".ppt", "application/vnd.ms-powerpoint" },
            { ".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12" },
            { ".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" },
            { ".prf", "application/pics-rules" },
            { ".prm", "application/octet-stream" },
            { ".prx", "application/octet-stream" },
            { ".ps", "application/postscript" },
            { ".psd", "application/octet-stream" },
            { ".psm", "application/octet-stream" },
            { ".psp", "application/octet-stream" },
            { ".pub", "application/x-mspublisher" },
            { ".qt", "video/quicktime" },
            { ".qtl", "application/x-quicktimeplayer" },
            { ".qxd", "application/octet-stream" },
            { ".ra", "audio/x-pn-realaudio" },
            { ".ram", "audio/x-pn-realaudio" },
            { ".rar", "application/octet-stream" },
            { ".ras", "image/x-cmu-raster" },
            { ".rf", "image/vnd.rn-realflash" },
            { ".rgb", "image/x-rgb" },
            { ".rm", "application/vnd.rn-realmedia" },
            { ".rmi", "audio/mid" },
            { ".roff", "application/x-troff" },
            { ".rpm", "audio/x-pn-realaudio-plugin" },
            { ".rtf", "application/rtf" },
            { ".rtx", "text/richtext" },
            { ".scd", "application/x-msschedule" },
            { ".sct", "text/scriptlet" },
            { ".sea", "application/octet-stream" },
            { ".setpay", "application/set-payment-initiation" },
            { ".setreg", "application/set-registration-initiation" },
            { ".sgml", "text/sgml" },
            { ".sh", "application/x-sh" },
            { ".shar", "application/x-shar" },
            { ".sit", "application/x-stuffit" },
            { ".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12" },
            { ".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide" },
            { ".smd", "audio/x-smd" },
            { ".smi", "application/octet-stream" },
            { ".smx", "audio/x-smd" },
            { ".smz", "audio/x-smd" },
            { ".snd", "audio/basic" },
            { ".snp", "application/octet-stream" },
            { ".spc", "application/x-pkcs7-certificates" },
            { ".spl", "application/futuresplash" },
            { ".spx", "audio/ogg" },
            { ".src", "application/x-wais-source" },
            { ".ssm", "application/streamingmedia" },
            { ".sst", "application/vnd.ms-pki.certstore" },
            { ".stl", "application/vnd.ms-pki.stl" },
            { ".sv4cpio", "application/x-sv4cpio" },
            { ".sv4crc", "application/x-sv4crc" },
            { ".svg", "image/svg+xml" },
            { ".svgz", "image/svg+xml" },
            { ".swf", "application/x-shockwave-flash" },
            { ".t", "application/x-troff" },
            { ".tar", "application/x-tar" },
            { ".tcl", "application/x-tcl" },
            { ".tex", "application/x-tex" },
            { ".texi", "application/x-texinfo" },
            { ".texinfo", "application/x-texinfo" },
            { ".tgz", "application/x-compressed" },
            { ".thmx", "application/vnd.ms-officetheme" },
            { ".thn", "application/octet-stream" },
            { ".tif", "image/tiff" },
            { ".tiff", "image/tiff" },
            { ".toc", "application/octet-stream" },
            { ".tr", "application/x-troff" },
            { ".trm", "application/x-msterminal" },            
            { ".ttf", "application/octet-stream" },
            { ".tts", "video/vnd.dlna.mpeg-tts" },
            { ".txt", "text/plain" },
            { ".u32", "application/octet-stream" },
            { ".uls", "text/iuls" },
            { ".ustar", "application/x-ustar" },
            { ".vbs", "text/vbscript" },
            { ".vcf", "text/x-vcard" },
            { ".vcs", "text/plain" },
            { ".vdx", "application/vnd.ms-visio.viewer" },
            { ".vml", "text/xml" },
            { ".vsd", "application/vnd.visio" },
            { ".vss", "application/vnd.visio" },
            { ".vst", "application/vnd.visio" },
            { ".vsto", "application/x-ms-vsto" },
            { ".vsw", "application/vnd.visio" },
            { ".vsx", "application/vnd.visio" },
            { ".vtx", "application/vnd.visio" },
            { ".wav", "audio/wav" },
            { ".wax", "audio/x-ms-wax" },
            { ".wbmp", "image/vnd.wap.wbmp" },
            { ".wcm", "application/vnd.ms-works" },
            { ".wdb", "application/vnd.ms-works" },
            { ".webm", "video/webm" },
            { ".wks", "application/vnd.ms-works" },
            { ".wm", "video/x-ms-wm" },
            { ".wma", "audio/x-ms-wma" },
            { ".wmd", "application/x-ms-wmd" },
            { ".wmf", "application/x-msmetafile" },
            { ".wml", "text/vnd.wap.wml" },
            { ".wmlc", "application/vnd.wap.wmlc" },
            { ".wmls", "text/vnd.wap.wmlscript" },
            { ".wmlsc", "application/vnd.wap.wmlscriptc" },
            { ".wmp", "video/x-ms-wmp" },
            { ".wmv", "video/x-ms-wmv" },
            { ".wmx", "video/x-ms-wmx" },
            { ".wmz", "application/x-ms-wmz" },
            { ".woff", "application/font-woff" },
            { ".wps", "application/vnd.ms-works" },
            { ".wri", "application/x-mswrite" },
            { ".wrl", "x-world/x-vrml" },
            { ".wrz", "x-world/x-vrml" },
            { ".wsdl", "text/xml" },
            { ".wtv", "video/x-ms-wtv" },
            { ".wvx", "video/x-ms-wvx" },
            { ".x", "application/directx" },
            { ".xaf", "x-world/x-vrml" },
            { ".xaml", "application/xaml+xml" },
            { ".xap", "application/x-silverlight-app" },
            { ".xbap", "application/x-ms-xbap" },
            { ".xbm", "image/x-xbitmap" },
            { ".xdr", "text/plain" },
            { ".xht", "application/xhtml+xml" },
            { ".xhtml", "application/xhtml+xml" },
            { ".xla", "application/vnd.ms-excel" },
            { ".xlam", "application/vnd.ms-excel.addin.macroEnabled.12" },
            { ".xlc", "application/vnd.ms-excel" },
            { ".xlm", "application/vnd.ms-excel" },
            { ".xls", "application/vnd.ms-excel" },
            { ".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12" },
            { ".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12" },
            { ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" },
            { ".xlt", "application/vnd.ms-excel" },
            { ".xltm", "application/vnd.ms-excel.template.macroEnabled.12" },
            { ".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" },
            { ".xlw", "application/vnd.ms-excel" },
            { ".xml", "text/xml" },
            { ".xof", "x-world/x-vrml" },
            { ".xpm", "image/x-xpixmap" },
            { ".xps", "application/vnd.ms-xpsdocument" },
            { ".xsd", "text/xml" },
            { ".xsf", "text/xml" },
            { ".xsl", "text/xml" },
            { ".xslt", "text/xml" },
            { ".xsn", "application/octet-stream" },
            { ".xtp", "application/octet-stream" },
            { ".xwd", "image/x-xwindowdump" },
            { ".z", "application/x-compress" },
            { ".zip", "application/x-zip-compressed" },
            // hls直播流
            { ".m3u8", "application/vnd.apple.mpegurl" },
            { ".ts", "video/vnd.dlna.mpeg-tts" },
            { ".tsv", "text/tab-separated-values" }
        };

        public bool TryGetContentType(string subpath, out string contentType)
        {
            contentType = "";
            string ext = Path.GetExtension(subpath);
            if (string.IsNullOrEmpty(ext))
                return false;

            ext = ext.ToLower();
            if (AllowMIME.ContainsKey(ext))
            {
                contentType = AllowMIME[ext];
                return true;
            }

            return false;
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值