html使用a标签不通过后台实现直接下载

1

在做项目的时候经常会碰到上传下载,通常在上传完文件以后会把文件在项目中的相对路径存到数据库以便下载,如果想直接下载文件,不通过后台action,则可以直接把文件路径给a标签的href属性,例如:

<a href="/uploadfolder/xxxx.txt">点击下载</a>

这样用户在点击这个链接的时候,就会直接下载这个文件,但是这里有个问题,像txt,jpg这些浏览器支持直接打开的文件是不会执行下载的,而是会直接打开。这时候可以给a标签添加一个download属性,例如:

<a href="/uploadfolder/xxxx.txt" download="文件名.txt">点击下载</a>

download也可以不给值,这样就会使用默认的文件名。

PS:IE貌似不支持这种写法,所以只能通过后台代码。


如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

FunctionRun · 2016年01月08日

现在有一个文件是 /////////xxx.dat 格式的,下载的时候总是报无法找到该文件,你有遇到过么

回复

MartinDai 作者 · 2016年01月08日

你可以用其他方式试试看能不能下载,然后检查一下你的静态文件有没有做过滤,会不会是被后台拦截器给拦截了

回复

FunctionRun · 2016年01月08日

恩,已经找出原因是iis中没有设置这种mime type .所有服务器允许客户端访问.

回复

海货 · 2017年11月13日

火狐下你的这种方式是直接打开的

回复

0

火狐这浏览器比较奇葩。。。。。好多标准不一样

MartinDai 作者 · 2017年11月13日
Best_Yu · 3月3日

<a href="https://media3.giphy.com/media/xT9IgzvnOyNDYnxeHS/giphy-downsized.gif" download="test">
<img src="https://media3.giphy.com/media/xT9IgzvnOyNDYnxeHS/giphy-downsized.gif" >
</a>
这是个图片,但是问什么加上 download 属性还是直接跳转, chrome 最新版本

回复

0

我也不知道了,现在没有在研究前端的东西,可能可以通过js调用方法之类的下载吧,你多搜搜看

MartinDai 作者 · 3月4日
0

@MartinDai 好的 谢谢,我查到了,这个 属性有跨域问题,产生跨域就不生效了

Best_Yu · 3月4日
载入中...