我有一个.NET Web API 2应用程序,我已经连接api给我一个文件ID,然后从那里我从服务器获取唯一的文件。
示例:
<a href="api/attachment/232-2323-2323-2323">Download</a>
我需要它是一个唯一的id,因为repo中可能有多个文件。但是,当我尝试单击下载按钮时,我得到了一个:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我认为重写规则可能是一个很好的动作,但我真的不想重写它,我只是想允许任何/ api / attachment,无论其他什么。
我已经有了一条重写规则,因为我的网页是一个单页面应用程序,可以直接响应Default.cshtml:
<rewrite>
<rules>
<rule name="Default" stopProcessing="true">
<match url="^(?!Lib|api|Assets|Views|Directives|Services|Controllers|signalr).*" />
<action type="Rewrite" url="Default.cshtml" />
</rule>
</rules>
</rewrite>
关于实现这一目标的最佳途径的任何想法?
答案 0 :(得分:0)
我能够通过创建iframe并将src设置为下载来解决:
$("body").append('<iframe name="downloadFrame" id="download_iFrame" style="display:none;" src="" />');
然后在C#中设置标题如:
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");