gpt4 book ai didi

c# - 如何使用 FileResult 下载文件?

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:21 25 4
gpt4 key购买 nike

我的 View 中有一个列表,其中包含一个 ActionLink 按钮“下载”,我希望他们在单击该链接时下载一个文件。该文件位于我项目的 map 中。

查看:

<div id="right-column-links">
<h2>Your active links</h2>
@if (lstLinks.Count == 0)
{
<p>You have no active links yet.</p>
}
else
{
<table>
@foreach (var item in lstLinks)
{
<tr>
<td>@Html.DisplayFor(model => item.Url)</td>
<td>@Html.ActionLink("Put inactive", "LinkInActive", new { linkid=item.LinkId }, new { onclick = "return confirm('Are you sure you want this link inactive?');" })</td>
<td>@Html.ActionLink("Download Qrcode", "DownloadQrcode", new { linkid=item.LinkId })</td>
</tr>
}
</table>
}
</div>

Controller :

[HttpPost]
public FileResult DownloadQrcode(int linkid)
{
Qrcode Qrcode = DbO.getQrcodebyLinkId(linkid);
string image = Server.MapPath("~") + "\\Qrcodes\\" + Qrcode.Image;
string contentType = "image/jpg";

return File(image, contentType, "Qrcode-" + Qrcode.QrcodeId);
}

linkid 来自列表中选定的链接。然后我在我的数据库中查找与 linkid 匹配的 qrcode。从这个 qrcode 对象我得到图像名称。示例 (qrcode-1337)。然后我不知道该怎么办。我查找存储项目的路径并将 map 二维码附加到它(存储所有图像的位置)和图像名称。这会返回一个他找不到的链接。

map 位置:

C:\Users\stage\Desktop\Immo-QR\Immo-QR\Immo-QR\Qrcodes

这似乎行不通。我不确定我应该如何使用 FileResult。谁能解释一下?或者告诉我另一种方法?

编辑:

一位用户建议我将图像放在 App_Data 文件中,我在 map Qrcodes 下做了。

要保存文件,我使用以下代码:

string path = Server.MapPath("~");

        System.IO.File.WriteAllBytes(path + "\\App_Data\\Qrcodes\\qrcode-" + qrcodeid + ".jpg", bytes);

如果我使用 "~\App_Data\Qrcodes\qrcode-"而不是上面的,它也不起作用。

我仍然收到此错误:“/”应用程序中的服务器错误。无法找到该资源。

解决方案:

有了这段代码就可以了!

public FileStreamResult DownloadQrcode(int linkid)
{
Qrcode Qrcode = DbO.getQrcodebyLinkId(linkid);
string path = Server.MapPath("~");
Stream image = new FileStream(path + "\\App_Data\\Qrcodes\\" + Qrcode.Image + ".jpg", FileMode.Open);

return File(image, "image/jpeg");
}

最佳答案

尝试将 string image 行更改为 Stream image

如果您无法阅读该文件,这将有助于理解。您的 return File 行将毫无问题地接收 Stream。

关于c# - 如何使用 FileResult 下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275077/

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