我有一个简单的锚链接,需要从服务器下载文件。文件名为:“ RT350Z_cfg.modbus ”。我相信服务器无法识别文件类型,因此它给了我 404错误。
文件的确切路径是:
~/uploads/UNITS/docs/VFD/RT350Z_cfg.modbus
我的 cshtml 文件只有这个:
<a target="_blank" href="@(VirtualPathUtility.ToAbsolute("~/uploads/UNITS/docs/VFD/RT350Z_cfg.modbus"))">Download File</a>
当我点击链接时,我发现未找到404错误。我已经三次检查该文件是否存在于服务器的该位置。
然后我将扩展名修改为*.txt
文件并修改了超链接以查找txt文件。
<a target="_blank" href="@(VirtualPathUtility.ToAbsolute("~/uploads/UNITS/docs/VFD/RT350Z_cfg.txt"))">Download File</a>
当我将扩展程序物理修改为*.txt
文件,然后更改了超链接时 - 文件下载得很好。
如何允许我的网络应用程序下载自定义文件扩展名?
答案 0 :(得分:1)
某些版本的IIS不提供“未知”文件。 您可以配置web.config以根据需要处理文件:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".modbus" mimeType="text/plain" />
或二进制:
<mimeMap fileExtension=".modbus" mimeType="application/octet-stream" />
您可以在MSDN了解更多相关信息。
答案 1 :(得分:1)
通常,我在我的控制器中创建一个 Action ,它返回一个FormatException
,只需在视图中创建一个System.Exception
来指向它。这是更多 MVC 下载文件的方式。另外,你可以完全控制它。
FileContentResult
在视图中,使用以下内容:
ActinLink