1.使用 a 标签进行文件下载时,download 属性主要是用来设置默认文件名称的,可以不加。
只要给了文件下载的 href 地址,a 标签就可以完成下载。
对于图片、pdf类的文件,我们一般需要加 download,告诉浏览器,下载这个文件,而不是打开新的标签页去预览。但是,如果后台返回图片/pdf时,设置了 filename,即使前端没有添加 download 属性,浏览器也会进行下载。
2.添加了 download 属性的 a 标签,点击访问 href 地址,在 chrome 浏览器中,不会携带 referer 请求头。而在其他浏览器中、或是 chrome 访问不带 download 属性的 a 标签的 href,都会携带 referer。
【注意】
chrome 对于 download 属性处理的这个行为差异,很可能造成,加了 download 属性的 a 标签,访问带有 referer 校验的下载地址,返回失败。从而造成文件下载失败(报服务器错误)
综合1、2,使用 a 标签进行文件下载时,应该尽量不加 download 属性。对于图片等文件,让后台设置 Content-Disposition 为 attachment,最好同时指定 filename,浏览器即可下载文件,防止预览。
【附:其他相关知识】
mac 内置的 nc(netcat) 指令,可以用于起一个临时的服务、并监听,用于测试。
如:
nc -l 8000
在 8000 端口起服务,并监听。
网友评论