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

上传到网站去的文档乱码wordpress sweep

上传到网站去的文档乱码,wordpress sweep,做网站后端,建设手机网站包括哪些费用前言 在实际开发中我们经常会遇见下载文件的场景,比如下载合同,下载文件 下载文件有2种方式,一种是后端返回二进制流,前端通过blob对象接受根据不同类型下载 还有一种把地址直接在浏览器新窗口打开浏览器打开pdf可以预览和下载&…

前言

  • 在实际开发中我们经常会遇见下载文件的场景,比如下载合同,下载文件

  • 下载文件有2种方式,一种是后端返回二进制流,前端通过blob对象接受根据不同类型下载

  • 还有一种把地址直接在浏览器新窗口打开浏览器打开pdf可以预览和下载,其他文件直接下载

  • 但不管是那种方式,原理都是一样的只是取决于谁来执行转化代码

代码实现

1.封装api-根据直接后端接口而定(注意要在请求时标明是二进制文件流)

// 文件-图片下载
export function downloadfile (data) {return request({url: '/download/file',method: 'post',data,// 指定请求类型为二进制流// 不写可能会造成下载成功的图片和文件是看不到和没有内容的responseType: 'blob'})
}

2.下载不同文件和图片在项目中可能经常使用-可以封装成一个方法。

2.1在utils下创建download.js文件

export default {// 下载 Excel 方法excel (data, fileName) {this.download(data, fileName, 'application/vnd.ms-excel')},// 下载 Word 方法word (data, fileName) {this.download(data, fileName, 'application/msword')},// 下载 Zip 方法zip (data, fileName) {this.download(data, fileName, 'application/zip')},// 下载 Html 方法html (data, fileName) {this.download(data, fileName, 'text/html')},// 下载 Markdown 方法markdown (data, fileName) {this.download(data, fileName, 'text/markdown')},// 下载 pdf 方法pdf (data, fileName) {console.log('data', data)console.log('fileName', fileName)this.download(data, fileName, 'application/pdf')},// 下载 图片方法png (data, fileName) {this.download(data, fileName, 'application/png')},// 兼容写法stream (data, fileName) {this.download(data, fileName, 'application/octet-stream')},download (data, fileName, mineType) {// 创建 blob对象let blob = new Blob([data], { type: mineType })// 浏览器api 有的不支持-二种都写window.URL = window.URL || window.webkitURL// 获取链接地址-(内容赋值到临时链接)let href = URL.createObjectURL(blob)// 创建a标签let downA = document.createElement('a')// 把链接赋值给a标签downA.href = href// 赋值文件名称downA.download = fileName// 点击下载downA.click()// 销毁超连接window.URL.revokeObjectURL(href)}}

3.在页面中使用

// html
<el-button type="info" @click="addclose">下载</el-button>
​
// data
datafile: {url: '文件或者图片地址'}// 引入方法
import download from '@/utils/download'
// 方法
// 下载async addclose () {const res = await downloadfile(this.datafile)
​// 下载图片// 针对性的类型-名称带不带.png都不会受影响// download.png (res,'测试图片')// 带后缀// download.png (res,'测试图片.png')
​// 下载pdf文件// 针对性的类型-名称带不带.pdf都不会受影响// download.pdf (res,'pdf文件')// 带后缀download.pdf (res,'pdf文件.pdf')
​// 公共方法// application/octet-stream 相当于公共类型-需要在名称带上指定的后缀-不然下载下来的文件没有后缀名打不开// download.stream (res,'公共方法.png')// download.stream (res,'公共方法.pdf')}

注意

  • 首先排查下载下来的文件格式是否正确,不正确检查blob对象类型(名称也有关系是否带后缀名)

  • 如果发现下载下来的文件格式后缀正确,内容,图片为空,看不见,排查后端是否把内容转成流,前端在封装api时是否设置responseType: 'blob'​


总结:

经过这一趟流程下来相信你也对 vue 后端返回二进制流-前端通过blob对象下载文件-图片 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

http://www.yayakq.cn/news/724536/

相关文章:

  • 电商网站运维怎么做建设网站查询密码
  • 自建网站套现.net 做网站
  • 抚顺网站建设推荐怎么看网站用什么平台做的
  • 南安市网站建设客户在我这做的网站被罚
  • 新网站如何让百度收录网页设计与网页制作的实验报告
  • 手机网站技术制作免费企业宣传视频
  • 太原做app网站建设展示空间设计作品
  • 做网站需要注意的事项360网站如何做引流
  • 电脑网站设计制作山东专业企业网站建设
  • dw设计网页步骤优化营商环境工作总结
  • 郑州做景区网站建设公司桂林市建设工程造价管理站网站
  • 网站登录界面设计html做网站经验技巧
  • asp.net 网站建设方案用网址进入的游戏
  • 虚拟货币交易网站建设河源定制网站建设推广
  • 温州网站推广驭明发稿推广
  • 怎样才能增加网站杭州专业建设网站哪里好
  • php网站开发是什么吗司瓦图网站
  • 无锡手机网站制作费用asp网站采集
  • 宁波网站建设方案报价河北百度推广
  • 浙江电信关于网站备案信息核实的公告公司网站建设需求
  • 襄阳网站建设网站建设与维护的选择题
  • 化妆品网站欣赏爱深圳小程序
  • 江宁外贸网站建设二手房公司网站源码
  • 公司网站建设费如何出账德州网站建设招聘
  • 重庆科技网站设计模板企业融资什么意思
  • 怎么设置网站字体医药网站建设的需求分析
  • 公司网站设计制作开发方案苏宁易购的网站建设
  • 深圳大兴汽车集团网站建设商城网站开发视频
  • 美食介绍网站模板网页制作软件dw还需要什么
  • 温州网站建设定制做网站客户会问什么问题