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

广州市白云区网站建设维护卫浴网站模板

广州市白云区网站建设维护,卫浴网站模板,重庆企业网站制作公司,wordpress取消主题文件资源的下载,是我们业务开发中常见的需求。作为前端开发,学习下如何自己使用node的express框架来实现资源的下载操作。 实现效果 代码实现 前端 1.封装的请求后端下载接口的方法,需求配置aixos的请求参数里面的返回数据类型为blob // 下载 export…

文件资源的下载,是我们业务开发中常见的需求。作为前端开发,学习下如何自己使用node的express框架来实现资源的下载操作。

实现效果

请添加图片描述
请添加图片描述

代码实现

  • 前端

1.封装的请求后端下载接口的方法,需求配置aixos的请求参数里面的返回数据类型为blob

// 下载
export function downLoad(name) {return instance.get(`/course/download?name=${name}`, {responseType: "blob",});
}

2.下载的核心方法,这里不能直接后端返回给我们的资源url,因为对于图片和pdf文件,浏览器的首选操作是预览,不是下载本地,所以我们这里需要转换下数据格式。

const downloadSource = async (item) => {const data = await downLoad(item.attachments);const blob = new Blob([data]);let filename = item.name;const fileUrl = item.attachments;const extname = fileUrl.substring(fileUrl.lastIndexOf(".") + 1);filename = filename + "." + extname;const link = document.createElement("a");link.download = filename;link.target = "_blank";link.style.display = "none";link.href = URL.createObjectURL(blob);document.body.appendChild(link);link.click();URL.revokeObjectURL(link.href);document.body.removeChild(link);
};

3.后端响应的数据格式
在这里插入图片描述

  • 后端
    1.模拟数据
    在这里插入图片描述

2.后端接口方法,"Content-Disposition这个响应头表示资源是需要下载的,如果含有中文可能会报错,解决方法是只需要我们encodeURIComponent转译就行了。

//下载资料
const imagePath = (name) => path.join(__dirname, `../public/images/${name}`);
const downloadFile = (req, res, next) => {// console.log("🚀 ~ fs.readFile ~ imagePath:", req.query.name);const nameArr = req.query.name.split("/");fs.readFile(imagePath(nameArr[nameArr.length - 1]), (err, buffer) => {if (err) {res.status(500).send("Error reading image");return;}// 设置响应头switch (req.query.name) {case "pdf":res.setHeader("Content-Type", "application/pdf");break;default:res.setHeader("Content-Type", "image/jpeg");}// 设置响应头res.setHeader("Content-Type", "application/pdf");res.setHeader("Content-Disposition",`attachment; filename=${encodeURIComponent(nameArr[nameArr.length - 1])}`);// 发送图片数据res.send(buffer);});
};

在这里插入图片描述
3.配置请求方法路径
在这里插入图片描述
这样我们就实现了图片,pdf等资源的下载。这里只演示了图片和资源两种文件类型,其余的类型是一样的原理,可以自行添加测试。

http://www.dtcms.com/wzjs/576188.html

相关文章:

  • app应用网站单页模板下载2024年利润300万以内企业所得税
  • 企业做网站公司哪家好网站可以做什么
  • 温州网站建设企业成都自适应建站哪家好
  • 网站开发计入管理费用哪个明细开工作室做什么项目赚钱
  • 设计网站的优缺点分析kxsw wordpress
  • 电子政务网站建设总结电子商务网站建设如何
  • 信用网站标准化建设方案农村电商平台开发
  • 阿里云服务器配置网站企业网页建设公司咨询电话
  • 青岛君哲网站建设公司怎么样世界四大广告公司
  • 做搜狗手机网站快速排单页网站seo
  • 海兴网站建设公司没有网站做分类信息群发
  • gta5网站正在建设中网站服务器大小
  • 网站的构架与组成怎么制作游戏修改器
  • python 网站建设定制网站建设推广方案
  • 快速网站优化服务dedecms企业网站模板
  • 怎么通过数据库做网站的登录刷百度指数
  • 办网站需流程导航网站怎么推广
  • 陕西高速建设集团网站如何在网上推广自己的公司
  • 做视频周边的网站wordpress通栏
  • zenm自己做网站wordpress多站点注册页
  • 网站开发大全好素材网站
  • 柳州住房城乡建设厅官方网站网站如何备份数据
  • 可以做h5游戏的网站公司注册地址备案流程
  • 响应式网站做seo怎么样门面装修设计方案
  • 小程序跳转到网站网站建设的公司名称
  • 新手怎么做网站郑州网站制作咨询
  • 辽宁省交通建设投资集团官方网站wordpress怎么修改模板文件
  • 广州手机端网站制作泉州网站设计理念培训
  • 网站建设风格总结电商网站建设网络公司
  • 高端网站建设公司兴田德润在那里wordpress 网页路径