繁体   English   中英

ASP.NET Core上的静态文件

[英]Static files on asp.net core

我正在尝试在ASP.NET Core 2.0 Web应用程序上启用静态文件。 我在一个名为updater的文件夹中有一堆文件,该文件夹位于wwwroot文件夹之外。 为了允许访问它们,我添加了

app.UseStaticFiles(new StaticFileOptions()
{
    ServeUnknownFileTypes = true,
    FileProvider = new PhysicalFileProvider(
        Path.Combine(Directory.GetCurrentDirectory(), @"TestUpdater")
    ),
    RequestPath = new PathString("/Updater")
});

这样,其他程序就可以通过调用url来获取其文件。 问题是所有文件都需要下载而不是提供。 有一个txt文件。 如何只允许下载而不提供服务?

正如您所描述的,“正在提供”和“正在下载”文件之间的唯一区别在于,在一种情况下,浏览器会将文件下载到一个临时位置,并显示在窗口中(内联),而在另一种情况下,浏览器将询问用户保存位置该文件到一个永久位置(附件)。

如果您要引用的其他程序正在直接与服务器联系以获取这些文件,则没关系。 例如,使用HttpClient,您根本不需要更改静态文件中间件。

如果您希望浏览器提示用户保存文件,即使它是可识别的内容类型,请尝试将Content-Disposition响应标头设置为“附件”。 要从Startup.cs配置中执行此操作,请修改StaticFileOptions以使用如下所示的内容:

new StaticFileOptions()
{
    OnPrepareResponse = context =>
    {
        context.Context.Response.Headers["Content-Disposition"] = "attachment";
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM