1.前后端分离项目,前端vue+webpackage+axios,后端springboot

2.使用了zuul做网关并配置路由,身份认证通过在header中写入token,在网关入口进行认证

2.使用fastDFS做文件服务器并配置了nginx进行在线预览

3.fastDFS的在线预览地址不对外开放,通过zuul路由过去。这就要求得有token,因此直接将图片地址写到img的src属性上是行不通了,

相关代码

getimg(){

axios.get(process.env.BASE_API+"preview/group0/M00/00/00/rBQAHVtkLACAR2y9AAgEf2GW0sY139.png", {

responseType: 'arraybuffer',

headers:{"validtoken":this.$store.getters.token}

}).then(response => {

return 'data:image/png;base64,' +btoa(new Uint8Array(response.data).reduce((data, byte) => data + String.fromCharCode(byte), ''));

}).then(data=>{

that.$refs.img.src=data;

});

可以看到图片是请求下来了,但是怎么显示到img上去呢?上面这个代码是参考https://segmentfault.com/q/10... 这个上面的回答写的,但是没显示出来,console.log输出最后的data只有前面那一小段"data:image/png;base64,"

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐