asp.net mvc 一个下载链接释放到客户端是a标签,其href属性是文件的路径,如果是txt或jpg这种文件,点击链接不是弹出下载框而是直接在窗口显示,如果是doc或其他文件,就会弹出下载框。怎样才能使所有文件点击都能弹出下载框而不直接打开呢?
你这样不行,下载文件分两种,一种是动态文件,一种是静态文件。静态是这个链接确定是一个文件地址:http://.../abc.zip这种。一种是download.asp?id=1233这种。后者是可以控制的,比如只有登录用户可以下载,当用户访问这个页面时你只要Response.WriteFile就可以,如果不管什么类型都希望客户端当作附件下载就需要在header里加Content-Disposition,将其值设置为attachment;filename='指定的下载文件名'
不太清楚
@hslgmq: 如果你啥都没听懂,那一两句也说不清。你网上搜这个Content-Disposition
@沧海一杰: 下载文件和MVC关系不大,和使用的语言有关系,参考http://www.cnblogs.com/hulang/archive/2013/02/27/2934640.html
@沧海一杰: 要使用这个你可能要借助隐藏的iframe
@沧海一杰: 你可以在每一个A标签的地方放一个隐藏的Iframe,隐式实现用第二种方法下载,这种方式可以实现你要的功能。
@沧海一杰: 给个示例看看
@hslgmq: 登录百度网盘,上传一张照片,点下载就可以实现。用fiddler监视它就可以看到,或者115网盘或微云或者csdn的文件下载,这块使用的是http协议,只与html有关,与其它语言无关的。
浏览器支持的文件类型就会直接打开,没办法的,除非右键另存为。
此话差矣,你去看看百度网盘里的,都可以产生下载对话框,不管是什么扩展名
<a href="http://192.168.1.254:10080/Software/test.exe" >下载</a>
各种文件扩展不可以吗?
用 Action 在服务器端生成 FileResult 就可以了。
不明觉厉!小学生来看看!
url相应的action可以实现下载: