Asp.net mvc 如何使用Ajax调用返回文件附件?
我有一个asp.net mvc页面(使用C#),其中包含一个包含文件名的链接:Asp.net mvc 如何使用Ajax调用返回文件附件?,asp.net-mvc,jquery,download,attachment,Asp.net Mvc,Jquery,Download,Attachment,我有一个asp.net mvc页面(使用C#),其中包含一个包含文件名的链接: <a id="a1" href="#">File Name 1</a> 单击此链接时,我希望使用Ajax将此文件“a1”的id传递给MVC控制器操作,然后该操作应返回一个文件附件(不能通过文件url访问,只能通过文件附件访问),以便显示带有“打开/保存”按钮的对话框 如何实现这一点?您不需要ajax,只需提供一个指向该文件的链接,并让浏览器负责下载;或者,使用window.locatio
<a id="a1" href="#">File Name 1</a>
单击此链接时,我希望使用Ajax将此文件“a1”的id传递给MVC控制器操作,然后该操作应返回一个文件附件(不能通过文件url访问,只能通过文件附件访问),以便显示带有“打开/保存”按钮的对话框
如何实现这一点?您不需要ajax,只需提供一个指向该文件的链接,并让浏览器负责下载;或者,使用
window.location
。就像我说的,我不能这样做,链接是本地到服务器的,例如c:/folder/file.doc。服务器如何加载该文件并将其发送到浏览器?将该文件置于Web服务器根目录之外,然后让您的控制器读取该文件并返回到具有正确标题的客户端。然后,您必须以某种方式保护临时文件URL[授权、令牌、会话等]。是的,这是最初的问题,如何在操作端实现它?发送带有标题等的附件。这取决于您在服务器上使用的技术,但您可以在读取磁盘上的文件时解决问题//根据文件MIME类型设置适当的标题//将答案发送回客户端。