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

自助微信网站设计网站seo的优化怎么做

自助微信网站设计,网站seo的优化怎么做,深圳网站建设可以吗,子洲网站建设平台原理&#xff1a;前端将二进制文件做转换实现下载: 请求后端接口->接收后端返回的二进制流(通过二进制流&#xff08;Blob&#xff09;下载,把后端返回的二进制文件放在 Blob 里面)->再通过file-saver插件保存 页面上使用&#xff1a; <span click"downloadFil…

原理:前端将二进制文件做转换实现下载: 请求后端接口->接收后端返回的二进制流(通过二进制流(Blob)下载,把后端返回的二进制文件放在 Blob 里面)->再通过file-saver插件保存

页面上使用:

<span @click="downloadFile">下载当前文件模板</span>downloadFile() {let dowloadUrlif (this.dowloadUrl) {dowloadUrl = this.dowloadUrl }else if (this.fullPathUrl) {dowloadUrl = this.fullPathUrl}downloadGet(dowloadUrl, `${this.fileName}.csv`, {})
},

在这里插入图片描述

保存文件:

import { saveAs } from 'file-saver'

发起请求通用方法(更改 axios 的 responseType):

// 通用下载方法,blob形式--【post请求】
export function download(url, params, filename, config) {downloadLoadingInstance = Loading.service({text: '正在下载数据,请稍候',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'})return service.post(url, params, {transformRequest: [(params) => {return tansParams(params)}],headers: { 'Content-Type': 'application/x-www-form-urlencoded' },responseType: 'blob', // 指定响应类型为二进制数据...config}).then(async(data) => {const isLogin = await blobValidate(data)if (isLogin) {const blob = new Blob([data])saveAs(blob, filename)} else {const resText = await data.text()const rspObj = JSON.parse(resText)const errMsg =errorCode[rspObj.code] || rspObj.msg || errorCode['default']Message.error(errMsg)}downloadLoadingInstance.close()}).catch((r) => {console.error(r)Message.error('下载文件出现错误,请联系管理员!')downloadLoadingInstance.close()})
}
// 通用下载方法,blob形式--【get请求】
export function downloadGet(url, filename, config) {downloadLoadingInstance = Loading.service({text: '正在下载数据,请稍候',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'})return service.get(url, {headers: { 'Content-Type': 'application/x-www-form-urlencoded' },responseType: 'blob',// 指定响应类型为二进制数据...config}).then(async(data) => {const isLogin = await blobValidate(data)if (isLogin) {const blob = new Blob([data])saveAs(blob, filename)} else {const resText = await data.text()const rspObj = JSON.parse(resText)const errMsg =errorCode[rspObj.code] || rspObj.msg || errorCode['default']Message.error(errMsg)}downloadLoadingInstance.close()}).catch((r) => {console.error(r)Message.error('下载文件出现错误,请联系管理员!')downloadLoadingInstance.close()})
}

封装的方法:

/**
* 参数处理
* @param {*} params  参数
*/
export function tansParams(params) {let result = ''for (const propName of Object.keys(params)) {const value = params[propName]var part = encodeURIComponent(propName) + '='// if (value !== null && value !== "" && typeof (value) !== "undefined") {if (value !== null && typeof (value) !== 'undefined') {if (typeof value === 'object') {for (const key of Object.keys(value)) {if (value[key] !== null && value[key] !== '' && typeof (value[key]) !== 'undefined') {const params = propName + '[' + key + ']'var subPart = encodeURIComponent(params) + '='result += subPart + encodeURIComponent(value[key]) + '&'}}} else {result += part + encodeURIComponent(value) + '&'}}}return result
}// 验证是否为blob格式
export async function blobValidate(data) {try {const text = await data.text()JSON.parse(text)return false} catch (error) {return true}
}// errorCode.js: 
export default {'401': '认证失败,无法访问系统资源','403': '当前操作没有权限','404': '访问资源不存在','default': '系统未知错误,请反馈给管理员'
}

点击"下载":

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关技术

Blob
概念: Blob 对象表示一个不可变的, 原始数据的类文件对象,它的数据可以按文本或二进制格式进行读取。

Blob 构造函数

const aBlob = new Blob(array, option)

第一个参数是一个类数组, 必填
第二个参数非必填有两个属性: type, 表示MIME类型, 默认值是’'。还有一个是endings 表示 /n 换行符如何被写入,默认值是’transparent’保持不变, 还有’native’按照宿主机的换行符

总结

前端实现文件的下载主要有两种方式,直接打开下载链接和通过 Blob 对二进制流文件下载,实际用那种方法可以看后端的返回值和请求方式

其他:

根据返回值构造 Blob 函数并转换成 URL ,动态创建 a 标签打开 URL参考:
https://huaweicloud.csdn.net/63a55dc4b878a545459452ae.html

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

相关文章:

  • 帮别人做ppt赚钱的网站网页设计五个页面
  • 上海设计网站泰州市建设工程招标网
  • 动易6.8网站头少儿编程课程
  • 做网站要要多少钱团购网站开发与设计
  • 3d云打印网站开发单位网站平台建设汇报
  • 衡水做网站优化企业网站源码是什么
  • 网站开发 北京外包公司兴义哪有做网站
  • 网站建设公司工作枯燥吗请将网站首页底部的备案号
  • 网站运营推广难做吗wordpress 主题制作教程
  • 品牌网站建设小蝌蚪1a开商城网站多少钱
  • 承德网站制作报价佛山网站建设怎么办
  • 最潮流的网站开发脚本语言交互设计名词解释
  • 路由器做网站80端口建设银行网站修改密码
  • 公司做网站都需要什么材料wordpress 文章关联
  • 刷死粉网站推广word可以做招聘网站吗
  • 网站建设企业网站界面设计互联网中厂有哪些公司
  • dw网站开发教程建设摩托125图片大全
  • 重庆本地网站有哪些wordpress 备份主题
  • 南宁seo排名原理仿牌网站优化
  • 开发一个网站的步骤专业外贸网站建设公司排名
  • 做网站需要什么资金二手车网站设计
  • 大气宽屏网站模板企业源码带后台网站后台更新了 前台不现实
  • 网站建设方案ppt 枫子科技网站管理助手未找到iis
  • 银川网站建设那家好手机视频制作软件最火
  • 做公司网站需要什么程序建e网别墅客厅
  • 安丘网站建设多少钱企业展馆展厅设计
  • 网站域名解析ip地址圣诞节网站模板
  • 湖州做网站建设的公司wordpress怎么改颜色
  • 网站建设公司哪有网站包括哪些内容吗
  • 站长工具欧美高清怎么做app推广