最近有一个需求,要下载视频,用户上传的视频放在视频服务器,然后php返回的url在浏览器href后并没有开始下载,而是直接打开了。
原因是服务器上有此视频,返回的url被浏览器解析到视频源文件,浏览器可以识别到视频,就会直接打开。
所以想到用浏览器的另存为来实现下载。(兼容火狐与谷歌)
function fake_click(obj) { var ev = document.createEvent("MouseEvents"); ev.initMouseEvent( "click", true, false, window, 0, 0, 0, 0, 0 , false, false, false, false, 0, null ); obj.dispatchEvent(ev); } function export_raw(name, data) { var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a"); save_link.href = data; save_link.download = name; fake_click(save_link); } export_raw("ee59cf02cf7939a403e7db97368ee6e5.ogv",data);