在.net core中如何下载Web根目录中具有特殊扩展名的静态文件?

问题描述 投票:0回答:2

阅读完这篇文章这个无法处理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
asp.net asp.net-core .net-core asp.net-core-mvc
2个回答
3
投票

从第二篇文章中,它明确指出通过其参数配置

UseStaticFiles()
选项,并指定即使文件类型未知也应提供静态文件。

app.UseStaticFiles(new StaticFileOptions
    {
        ServeUnknownFileTypes = true
    });

然而,正如文章所述,这是一个相当大的安全风险。谨慎行事。


0
投票

您可以使用特定文件扩展名的底部代码:

        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 是应用程序/八位字节流。

© www.soinside.com 2019 - 2024. All rights reserved.