前端 window.open()大家应该都不陌生,用于打开一个新的浏览器窗口或查找一个已命名的窗口。也可以下载具体路径的文件,但当文件是txt格式的时候会变成打开txt文件而不是下载文件,通过在网上的学习和自己的理解,整理出来如下方法可以下载txt。
function downloadFile2(url, fileName) {
var xmlHttp = null;
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlHttp = new XMLHttpRequest();
xmlHttp.overrideMimeType("text/html;charset=UTF-8"); //设定文件以gb2312编码识别数据
// 2.如果实例化成功,就调用open()方法:
if (xmlHttp !== null) {
xmlHttp.open('get', url, true);
xmlHttp.send();
xmlHttp.onreadystatechange = doResult; //设置回调函数
}
function doResult() {
if (xmlHttp.readyState == 4) { //4表示执行完成
if (xmlHttp.status == 200) { //200表示执行成功
// 创建隐藏的可下载链接
var aLink = document.createElement('a');
aLink.download = fileName; //设置a标签的下载名字
aLink.style.display = 'none';
// 字符内容转变成blob地址
var blob = new Blob([xmlHttp.responseText]);
aLink.href = URL.createObjectURL(blob);
// 触发点击
document.body.appendChild(aLink);
aLink.click();
// 然后移除
document.body.removeChild(aLink);
} else if (xmlHttp.status == 404) {
message.info("未找到对应文件!")//自己封装的提示方法
} else {
message.error("下载出错!")//自己封装的提示方法
}
}
}
}
以上方法实现点击后实现下载txt文件并以中文格式而不是打开文件,且在具体目录下找不到对应文件的时候最好给予提示说明。
借鉴如下: 链接.