阅读完这篇文章和这个无法处理Web根目录(.net core 3.1)中的服务文件。
webroot 文件夹中有一个 CB 文件夹,我可以浏览任何 txt 或 png 文件,它工作正常,但当我想下载 apk 文件时,它不起作用,并且找不到浏览器消息文件。
这是我的文件夹结构:
-wwwroot
-CB
myfile.apk
安装了“Microsoft.AspNetCore.StaticFiles”并使用:
app.UseStaticFiles();
测试网址:
http://localhost:51405/cb/myfile.apk
从第二篇文章中,它明确指出通过其参数配置
UseStaticFiles()
选项,并指定即使文件类型未知也应提供静态文件。
app.UseStaticFiles(new StaticFileOptions
{
ServeUnknownFileTypes = true
});
然而,正如文章所述,这是一个相当大的安全风险。谨慎行事。
您可以使用特定文件扩展名的底部代码:
FileExtensionContentTypeProvider contentTypes = new FileExtensionContentTypeProvider();
contentTypes.Mappings[".apk"] = "application/vnd.android.package-archive";
contentTypes.Mappings[".binarypb"] = "application/octet-stream";
contentTypes.Mappings[".tflite"] = "application/octet-stream";
contentTypes.Mappings[".data"] = "application/octet-stream";
contentTypes.Mappings[".wasm"] = "application/octet-stream";
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = contentTypes
});
您可以在此页面中找到每种文件类型的mimetype。例如apk mimetype是application/vnd.android.package-archive和binary(executable) mimetype 是应用程序/八位字节流。