联系我们
cms新闻网站系统、政府cms定制开发

广州网站建设公司-阅速公司

报纸新媒体网站内容发布一体化解决方案联?#26723;?#35805;
/
http://www.kize.icu/
广州网站建设公司
您当前位置:首页>网站技术

网站技术

javascript实现文件另存为(web api)

发布时间:2019/5/29 16:34:45  作者:Admin  阅读:4  

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>无标题文档</title>

</head>

<body>

<script type="text/javascript">

function _download(url,name) {

var pdfurl=url;

var fileName = name;

// 创建对象

var xhr = xhr = new XMLHttpRequest()

// 创建一个 GET 请求,异步

xhr.open('GET', pdfurl, true);

// 设置返回数据的类型为arraybuffer

//xhr.responseType = 'arraybuffer';

xhr.responseType = 'blob' ;

// 设?#20204;?#27714;头值

//xhr.setRequestHeader(KEYS.JWTToken, getStorageItem(KEYS.JWTToken));

// 接收到完整的响应数据时触发回调处理函数

xhr.onload = function() {

if (this.status === 200) {

// 获取请求头Content-Type的值,用来判断是否是文件流下载

var type = xhr.getResponseHeader('Content-Type')

// application/json;charset=UTF-8:就是指“无类型”,一般的字节流用于数据传输,非文件下载

if (type === 'application/json;charset=UTF-8') {

// this.response为arraybuffer对象,转为uint8数组

// var uint8 = new Uint8Array(this.response)

// 解决使用fromCharCode后中文乱码的问题

// var resToString = decodeURIComponent(escape((String.fromCharCode(...uint8))))

// var message = JSON.parse(resToString).message

// console.log(message)

// return

}

// Blob()的第一个参数必须为数组,即使只有一个字符串也必须用数组装起来

var blob = new Blob([this.response], {type: type})

// window.navigator.msSaveBlob:以本地方式保存文件

if (typeof window.navigator.msSaveBlob !== 'undefined') {

window.navigator.msSaveBlob(blob, fileName)

} else {

var URL = window.URL || window.webkitURL

// 创建新的URL表示指定的File对象或者Blob对象

var objectUrl = URL.createObjectURL(blob)

if (fileName) {

// 创建a标签用于跳转至下载链接

var a = document.createElement('a')

// download:指示浏览器下载URL而不是导航到它,也可设置下载文件的名称

if (typeof a.download === 'undefined') {

// window.location:获得当前页面的地址 (URL),并把浏览器重定向到新的页面

window.location = objectUrl

} else {

// href属性指定下载链接

a.href = objectUrl

// dowload属性指定文件名

a.download = fileName

// 将a标签插入body中

document.body.appendChild(a)

// click()事件触发下载

a.click()

// 去除a标签,以免影响其他操作

a.remove()

}

} else {

window.location = objectUrl

}

// 将URL?#22836;?/p>

URL.revokeObjectURL(objectUrl)

}

}

}

xhr.send();

}

</script>

<a href="javascript:void(0);" onClick="_download();" >下载</a>

</body>

</html>

相关文章
另存为
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技
莱万特s
全民突击2019 ac米兰对乌迪内斯 成都蒙彼利埃小学学费贵么 切尔西欧冠史上最神奇冠军.doc 自由精神电子 北京赛车pk10开奖直播软件下载 猴子的泳池派对电子 网络捕鱼辅助 双色球投注技巧 宁夏11选5走势图爱彩乐 新疆一头牛牛肉面店面 山西十一选五预测专家推荐 时时彩计划怎么用 寻仙手游打开麦克风失败 猎鱼达人辅助软件 乱世王者19堡礼包