gpt4 book ai didi

asp.net-mvc - 从我网页内的链接下载文件

转载 作者:行者123 更新时间:2023-12-03 13:25:49 27 4
gpt4 key购买 nike

我有带有对象表的网页。

我的对象属性之一是文件路径,该文件位于同一网络中。我想要做的是将此文件路径包装在链接下(例如下载),在用户单击此链接后,文件将下载到用户机器中。

所以在我的 table 里面:

@foreach (var item in Model)
{
<tr>
<th width ="150"><p><b><a href="default.asp" target="_blank">Download</a></b></p></th>
<td width="1000">@item.fileName</td>
<td width="50">@item.fileSize</td>
<td bgcolor="#cccccc">@item.date<td>
</tr>
}
</table>

我创建了这个下载链接:
<th width ="150"><p><b><a href="default.asp" target="_blank">Download</a></b></p></th>

我想要这个下载链接来包装我的 file path并单击链接将倾斜到我的 Controller :
public FileResult Download(string file)
{
byte[] fileBytes = System.IO.File.ReadAllBytes(file);
}

我需要在我的代码中添加什么才能实现这一点?

最佳答案

从您的操作中返回 FileContentResult。

public FileResult Download(string file)
{
byte[] fileBytes = System.IO.File.ReadAllBytes(file);
var response = new FileContentResult(fileBytes, "application/octet-stream");
response.FileDownloadName = "loremIpsum.pdf";
return response;
}

还有下载链接,
<a href="controllerName/Download?file=@item.fileName" target="_blank">Download</a>

此链接将使用参数 fileName 向您的下载操作发出获取请求。

编辑:对于未找到的文件,您可以,
public ActionResult Download(string file)
{
if (!System.IO.File.Exists(file))
{
return HttpNotFound();
}

var fileBytes = System.IO.File.ReadAllBytes(file);
var response = new FileContentResult(fileBytes, "application/octet-stream")
{
FileDownloadName = "loremIpsum.pdf"
};
return response;
}

关于asp.net-mvc - 从我网页内的链接下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19975689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com