方法一(亲测goolge firefox可以,其他的浏览器据说不支持,有待验证),可以更改filename名字来修改文件类型
createDownload("download.doc","download file");
function createDownload(fileName, content){
var blob = new Blob([content]);
var link = document.createElement("a");
link.innerHTML = fileName;
link.download = fileName;
link.href = URL.createObjectURL(blob);
document.getElementsByTagName("body")[0].appendChild(link);
}
方法二
插件:(本人没有测试)
https://github.com/SheetJS/js-xlsx
https://github.com/eligrey/FileSaver.js
参考博客:https://blog.youkuaiyun.com/u010427666/article/details/79208145
方法三
后台配置可下载
window.open(url,'_blank')
测试案例代码:实现读取任意位置图片,并下载到桌面(浏览器默认下载位置)
<input type="file" value="上传" id="upLoadImg" onchange="upLoad()">
<a onclick="clickloading()" id="btn" style="border: 1px solid black;background-color: black;color: white;">点击</a>
var dataBox="";
var filename="";
function upLoad(){
var file=document.getElementById('upLoadImg').files[0];
filename=file.name;
var reader=new FileReader();
reader.readAsDataURL(file);
reader.onload=function(){
dataBox=dataURLtoBlob(this.result)
}
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(',');
console.log(arr);
mime = (arr[0]).match(/:(.*?);/)[1];
bstr = atob(arr[1]);
n = bstr.length;
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}
function clickloading(){
createDownload(filename,dataBox);
}
function createDownload(filename, dataBox){
var blob = new Blob([dataBox]);
var btn=document.getElementById('btn');
btn.download = filename;
btn.href = URL.createObjectURL(blob);
}