如何在 ASP.NET Core 数据库中创建超链接以从目录下载文件?

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

我想做的是在数据库中有一个存储的文件路径,该路径显示为超链接,如果单击,它将开始下载。将来我想在数据库中存储多个不同的文件路径,并在网格视图中显示它们。

我尝试了这样的事情 - 在数据库中,

Downloads
表,路径:

<a href="~\wwwroot\Contents\sample.pdf" target="_blank">Download</a>

但这不起作用,因为它找不到文件位置。

这样也可以吗?

database asp.net-core hyperlink
1个回答
0
投票

首先,您不需要在 href 中包含

wwwroot
,使用
href="/Contents/sample.pdf"
应该适合您。请记住,ASP.NET Core 在解析静态文件(CSS、JS、图像等)时默认使用 wwwroot 文件夹,因此使用 ~\wwwroot\Contents\sample.pdf 本质上意味着在 wwwroot 文件夹中查找 wwwroot 子文件夹。假设项目位于 D:\dev\xyx,.net core 将寻找 d:\dev\xyx\wwwroot\wwwroot\Contents\sample.pdf,这是不正确的(注意双 wwwroot )。正确的路径应该是 d:\dev\xyx\wwwroot\Contents\sample.pdf

其次,你不应该将绝对文件路径存储在数据库中,这不是一个好的做法。在数据库中保存相对于下载文件夹的路径,然后在渲染标签时动态(动态)解析它们。

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