在.NET Web API Core 中實現文件下載
var fileProvider = new PhysicalFileProvider("\\host\patha\pathb\");//絕對路徑,如 c:\files\ ;網絡路徑:\\a\b\c var diretoryOptions = new DirectoryBrowserOptions { FileProvider = fileProvider, RequestPath = "/files", Formatter= new MyDirectoryFormatter(HtmlEncoder.Default)//自定義文件目錄頁面 }; var fileExtensionContentTypeProvider = new FileExtensionContentTypeProvider(); fileExtensionContentTypeProvider.Mappings[".xml"]= "application/octet-stream"; //IE不支持 var fileOptions = new StaticFileOptions { FileProvider = fileProvider, RequestPath = "/documents", ContentTypeProvider = fileExtensionContentTypeProvider, OnPrepareResponse = (staticFileResponseContext)=>{ staticFileResponseContext.Context.Response.Headers.Add("content-disposition", "attachment"); }//在IE中讓文件作為附件下載 }; app.UseDirectoryBrowser(diretoryOptions); app.UseStaticFiles(); app.UseStaticFiles(fileOptions);
MyDirectoryFormatters 實現 IDirectoryFormatter接口,可以自定義文件夾顯示界面;
DirectoryBrowserOptions 建立文件夾與URL的映射
StaticFileOptions 建立文件與URL的映射
