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

dedecms网站建设合同南宁seo怎么做优化团队

dedecms网站建设合同,南宁seo怎么做优化团队,网站制作的付款方式,江西抚州建设网站img 标签预览图片如何携带token进行验证 前言 vue中给img的src添加token 因项目中安全测评的需要#xff0c;请求图片时要求添加token#xff0c;方法如下#xff1a;在项目中循环渲染的img标签中的图片要显示#xff0c;src需要加请求头token#xff08;正常情况下img 标签预览图片如何携带token进行验证 前言 vue中给img的src添加token 因项目中安全测评的需要请求图片时要求添加token方法如下在项目中循环渲染的img标签中的图片要显示src需要加请求头token正常情况下后端直接返回src的url 图片在前端开发中扮演了重要的角色它们不仅仅是美观的元素还可以传递信息和激发用户的兴趣。随着应用场景的增多前端开发人员就需要在图片加载过程中携带验证的信息。如 token用于身份验证、权限控制等方面。通过在图片的 URL 或请求头中携带 token 信息从而实现图片信息的安全传输。 实现思路 1、在img 请求图片时要求添加tokensrc 后 url?token‘’ 拼接 或通过设置在请求头里可以使用XMLHttpRequest2、间接通过一个后端api 下载文件到本地 尝试 第1方案 vue中给img的src添加token 自定义子组件AuthImg在这发送请求获取img地址 templatediv!-- 显示图片 --img refimg :style{width:width,height:height} v-ifimgType view /!-- 使用element-ui的el-image进行图片预览 --el-image :style{width:width,height:height} refpreviewimg v-ifimgType preView :srcpreviewpath:preview-src-listpreviewList/el-image/div /templatescriptimport {getToken} from /utils/auth;export default {name: AuthImg,props: {imgSrc: String,// 图片类型可选为view仅预览图片或preView可点击预览imgType: {type: String,default: view,},// 图片的宽度width: {type: String,},// 图片的高度height: {type: String,},},data() {return {// 预览图片列表previewList: [],// 预览图片路径previewpath: ,};},computed: {// 拿到token值登录成功后由后台返回的token() {// 这里我把登录之后拿到的token放到了vuex中return getToken();}},mounted() {},methods: {// 携带token请求img的srcgetImgSrcByToken() {// Object.defineProperty()方法会直接在一个对象上定义一个新属性或者修改一个对象的现有属性并返回此对象Object.defineProperty(Image.prototype, imgSrc, {// 可写writable: true,// 可枚举enumerable: true,// 若configurable设为false那就不可以delete了configurable: true});let img this.$refs.img;let request new XMLHttpRequest();request.responseType blob;request.open(get, this.imgSrc, true);request.setRequestHeader(Authorization, Bearer this.token);request.onreadystatechange(e {if(request.readyState XMLHttpRequest.DONE request.status 200) {// URL.createObjectURL() 静态方法会创建一个 DOMString其中包含一个表示参数中给出的对象URL这个新的URL对象表示指定的File对象或blob对象img.src URL.createObjectURL(request.response);img.onload () {// 在每次调用 createObjectURL() 方法时都会创建一个新的 URL 对象即使你已经用相同的对象作为参数创建过。当不再需要这些 URL 对象时每个对象必须通过调用 URL.revokeObjectURL() 方法来释放。URL.revokeObjectURL(img.src);}}});request.send(null);},}, } /script 父组件中调用 authImg :imgSrcbaseurl /download.do?id files.name height60 alt/authImg下面尝试 第2方法 创建一个名为 tokenImg 的组件该组件用于显示图片并支持预览功能在组件的模板中使用 标签来显示图片或使用 element-ui 的 标签进行图片预览在组件的属性中接收图片的 URL 地址 (imgUrl)、图片类型 (imgType)、图片的宽度 (width) 和高度 (height)在组件的数据中定义预览图片列表 (previewList) 和预览图片路径 (previewpath)实现两个方法 viewModel() 和 preViewModel() 分别用于仅预览图片和带缩略图预览在 viewModel() 方法中通过调用下载文件的 API (downloadFileApi) 并根据返回的文件内容创建 URL 对象将图片 URL 赋值给 标签的 src 属性在 preViewModel() 方法中同样调用下载文件的 API将返回的文件内容创建 URL 对象并将 URL 添加到预览图片列表中使用 watch 监听 imgUrl 属性的变化在变化时根据 imgType 属性的值来调用对应的方法在组件的 mounted() 钩子中根据初始的 imgType 属性值来调用对应的方法在 main.js 文件中将 tokenImg 组件注册为全局组件以便在其他地方使用在需要使用该组件的地方使用 标签并传递相应的属性如图片 URL、图片类型、宽度和高度 这样你可以在前端中使用 tokenImg 组件来显示带有 Token 的图片并支持预览功能。注意确保在组件使用时传递正确的图片 URL、类型、宽度和高度。 封装文件 templatediv!-- 显示图片 --img refimg :style{width:width,height:height} v-ifimgType view /!-- 使用element-ui的el-image进行图片预览 --el-image :style{width:width,height:height} refpreviewimg v-ifimgType preView :srcpreviewpath:preview-src-listpreviewList/el-image/div /template script // 引入的接口文件 import { downloadFileApi } from /api/publicApi/enumeration; export default {name: token-img,props: {// 图片的URL地址imgUrl: {type: String,},// 图片类型可选为view仅预览图片或preView可点击预览imgType: {type: String,default: view,},// 图片的宽度width: {type: String,},// 图片的高度height: {type: String,},},data() {return {// 预览图片列表previewList: [],// 预览图片路径previewpath: ,};},methods: {// 查看文件 //仅预览图片viewModel() {const img this.$refs.img;// 调用下载文件的API并根据返回的文件内容创建URL对象downloadFileApi(this.imgUrl).then((res) {img.src URL.createObjectURL(res);img.onload () {URL.revokeObjectURL(img.src);};});},//带缩略图预览preViewModel() {downloadFileApi(this.imgUrl).then((res) {// 调用下载文件的API并根据返回的文件内容创建URL对象this.previewpath URL.createObjectURL(res);this.previewList.push(this.previewpath);});},},watch: {// 监听imgUrl变化imgUrl() {if (this.imgType view) {this.viewModel();} else if (this.imgType preView) {this.preViewModel();}},},mounted() {if (this.imgType view) {this.viewModel();} else if (this.imgType preView) {this.preViewModel();}}, }; /script 引入的接口文件 export function downloadFileApi(imgUrl) {return request({url: /api/file/examine-previewimgUrl,method: get,responseType: blob,}); }main.js // 将其注册为全局组件 import TokenImg from /components/tokenImg; Vue.component(TokenImg, TokenImg)使用文件 TokenImg :width50px :height50px :imgUrlYourUrl :imgTypepreView/实现效果 渲染查看 拓展 下载文件携带 token 第一种方式手写实现 //下载方法 getBgdzByGcsj(row) {// 通过接口下载文件downloadFileApiDown(row.bgdz).then((res) {// 将文件流转换为下载链接const downloadUrl URL.createObjectURL(res);// 创建一个a标签const link document.createElement(a);// 设置链接的URL为下载链接link.href downloadUrl;// 设置下载的文件名为报表管理.xlslink.download 报表管理.xls;// 隐藏a标签link.style.display none;// 将a标签添加到页面的body中document.body.appendChild(link);// 触发a标签的点击事件开始下载link.click();// 下载完成后删除a标签document.body.removeChild(link);}); }
http://www.pierceye.com/news/854257/

相关文章:

  • 长春网站排名提升seo关键词推广多少钱
  • 头条网站怎么做的在网站上放广告
  • 网站建设费的会计分录wordpress c博客
  • 网站开发语言字典使用apmserv本地搭建多个网站
  • 建网站费用记账北京时间网站建设
  • 兴化网站开发佛山营销网站建设联系方式
  • 安居客官网网站天津 网站设计制作公司
  • seo建站优化价格表中山网站建设品牌
  • wp网站源码聊城市住房和城乡建设局网站首页
  • 个人博客网站总结买东西的网站
  • 兰州新区小程序建站网站的漂浮广告怎么做
  • 用vs代码做网站线上拓客渠道有哪些
  • 微信网站界面如何免费创建自己的平台
  • 电商设计一般都是做什么潍坊网站seo外包
  • 大城怎么样做网站雄安建设工程信息网站
  • 郑州网站建设方案服务安全狗iis版删了以后 网站打不开
  • 忻州网站制作jsp小型网站开发代码
  • 如何外贸网站推广wordpress默认主题哪个好
  • 设计网站推荐提升审美网站建设的公司
  • 张浦专业做网站网站建设案例百度云
  • 佛山网站如何制作网站建设公司哪家强
  • 韩城市网站建设编程培训机构加盟哪家好
  • 已备案网站更换域名广东工厂网站建设
  • 营销型网站有哪些特点建设官方网站的费用账务处理
  • 区域网站设计WordPress无法发布
  • html网站开发主要涉及哪些技术百度域名的ip
  • 织梦网站数据下载wordpress如何播放百度云视频
  • 建站的费用服务器搭建网站环境
  • 查看公司信息的网站旅游网站效果图
  • 娄底网站制作重庆专题片制作