当前位置: 首页 > news >正文

wordpress日期间隔附子seo

wordpress日期间隔,附子seo,企业网站开发背景及意义,网页设计实训报告5000字文章目录 不使用代理服务器blobblob构造函数通过FormData对象的getBlob方法创建Blob对象将Blob对象转换成UR 使用代理服务器 前后端分离项目中下载与其他接口的使用不同,一般下载不走node,不通过代理服务器,而是直接在前台发送请求&#xff0…

文章目录

    • 不使用代理服务器
      • blob
        • blob构造函数
        • 通过FormData对象的getBlob方法创建Blob对象
        • 将Blob对象转换成UR
    • 使用代理服务器

前后端分离项目中下载与其他接口的使用不同,一般下载不走node,不通过代理服务器,而是直接在前台发送请求,又因为前端使用的是代理服务器,会出现跨域问题,需要后端协助,允许下载文件接口跨域

不使用代理服务器

axios({method: 'GET',url: `url`,  // 后端下载接口headers: {token: token},params: {fileId: id},// 后端返回的是二进制数据,请求的响应类型为二进制数据,如果不加下载的文件是乱码responseType: 'blob'   
}).then(res => {let file = res.datalet disposition = (res.headers['content-disposition']).split('=')let filename = disposition[1] //文件名const blob = new Blob([file])let url = URL.createObjectURL(blob)// 创建下载链接let downloadLink = document.createElement('a');downloadLink.href = urldownloadLink.download = filename; // 设置文件名// 添加到页面并模拟点击下载renderingdocument.body.appendChild(downloadLink);downloadLink.click();// 清理下载链接document.body.removeChild(downloadLink);
}).catch(err => {console.log(err)})

blob

blob表示二进制的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。在 JavaScript 中 Blob 类型的对象表示不可变的类似文件对象的原始数据。
Blob 对象含有两个属性:size 和 type。其中 size 属性用于表示数据的大小(以字节为单位),type 是一个字符串。

blob构造函数
const blob = new Blob([file])
通过FormData对象的getBlob方法创建Blob对象
const formData = new FormData();
formData.append('file', file);
const blob = formData.getBlob('file');
将Blob对象转换成UR
const url = URL.createObjectURL(blob)

使用代理服务器

如果用node,浏览器端还需要判断下载文件类型,从而添加对应的content-type和拓展名,如果后端返的全是200,还可能出现没有文件,下载下来是下图这样的
在这里插入图片描述浏览器端

function fileDownload() {const fileDwon = document.querySelectorAll('.fileDwon')console.log(fileDwon);fileDwon.forEach(function (value) {value.addEventListener('click', function () {let id = value.idconsole.log(id);download({method: 'GET',url: `/downLoadFile`,params: {id: id},responseType: 'blob',}).then(res => {let file = res.data;const blob = new Blob([file])let url = URL.createObjectURL(blob)console.log(blob);// 创建下载链接var downloadLink = document.createElement('a');downloadLink.href = urldownloadLink.download = `${res.headers.filename}.doc`; // 设置文件名// 添加到页面并模拟点击下载document.body.appendChild(downloadLink);downloadLink.click();// 清理下载链接URL.revokeObjectURL(url);document.body.removeChild(downloadLink);}).catch(err => {console.log(err)})})})
}

服务器端

// 下载文件
router.get('/downLoadFile', async (req, res) => {let fileId = req.query.idlet token = req.headers.tokenconst url = `http://123.57.144.143:8080/warmHeartDownload/downLoadFile`;try {const pipelineAsync = promisify(pipeline);const response = await fetch(url, {headers: {token},params: {fileId: fileId},});if (!response.ok) {console.error('获取失败');}await pipelineAsync(response.body, res);} catch (error) {console.error('Download error:', error);res.status(500).send('Error downloading file');}
})
http://www.khdw.cn/news/32653.html

相关文章:

  • 手机怎么制作网站网址seo推广怎么收费
  • 网站的建设模式是指什么时候站长工具网站查询
  • 易企秀+旗下+网站建设2022年最新新闻播报稿件
  • 旅游网站开发需求文档模板寻找客户资源的网站
  • 网架报价明细表seo评测论坛
  • 做招聘网站的要求网站新域名查询
  • b北京网站建设网络服务器图片
  • 网站域名 格式数字营销网站
  • 成都专业网站建设哪家好搜索图片识别出处百度识图
  • 个人网站类型职业培训机构有哪些
  • 用cs6怎么做网站外贸网站谷歌seo
  • 网站前后端分离怎么做日喀则网站seo
  • 软件园二期做网站的公司有哪些企业推广网站有哪些
  • 长沙水业网站是哪家公司做的seopc流量排名官网
  • 武汉模板开发建站龙岗网站建设公司
  • 大学网站的设计方案seo外推
  • 新手做网站买服务器宁德市高中阶段招生信息平台
  • 武汉网站关键词优化报价网络自动推广软件
  • 网站开发平台软件长沙百度关键词排名
  • 做网站的一般多少钱抖音seo关键词优化
  • 网站建设方案撰写企业网络宣传推广方案
  • 在线制作网站公章seo模拟点击软件
  • 哪些网站能够免费做公考题网络营销策划方案800字
  • 长兴企业网站开发怎么在百度上推广自己
  • 一个空间怎么做两个网站百度广告联系方式
  • 山东网站建设公司哪家权威杭州百度推广
  • 哈尔滨网站设计公司重庆seo代理计费
  • 广西建设职业技术学院石景山区百科seo
  • wordpress怎么查找文件上海网站seo优化
  • 快速建设网站视频教程百度关键词刷排名软件