vue img src加载二进制图片操作和显示

首先加载二进制图片要把接口请求返回的二进制流数据类型改变 二进制对象 或者 类型化数组 //二进制对象数组 responseType: 'blob' // responseType: 'arraybuffer' 不然获取回来的数据全部都是乱码的 这样的: �PNG IHDR M )�l��IDATx���d������d�1����������Ld.3I$�L�$ Ɍ$�dL2��%�L�%I"I��L�Ld�I"I��������z�:��>�sv�;�� ��������z�^�׏��ȕ� G��|@����<�?����!��y> ���C���|@����<�?����!��y> ���C���|@����<�? ����!��y> ���C���|@����<�?����!��y> 只要改了接口请求返回类型后可以用 window.URL.createObjectURL(接口返回的数据) 这样就生成类似base64图片流了 <template> <div> <div class="box-item"> <img :src="imgdata" class="img" /> </d

首先加载二进制图片要把接口请求返回的二进制流数据类型改变

二进制对象或者类型化数组

text
//二进制对象数组
responseType: 'blob' 
//
responseType: 'arraybuffer'

不然获取回来的数据全部都是乱码的

这样的:

text
�PNG
    
    IHDR    M
    )�l��IDATx���d������d�1����������Ld.3I$�L�$
Ɍ$�dL2��%�L�%I"I��L�Ld�I"I��������z�:��>�sv�;��
��������z�^�׏��ȕ�    G��|@����<�?����!��y>
 ���C���|@����<�?����!��y> ���C���|@����<�?
����!��y> ���C���|@����<�?����!��y>

只要改了接口请求返回类型后可以用**window.URL.createObjectURL(接口返回的数据)**这样就生成类似base64图片流了

text
<template>
    <div>
        <div class="box-item">
            <img :src="imgdata" class="img" />
        </div>
    </div>
</template>

<script>
import axios from "axios";
export default {
    data() {
        return {
            hide: false,
            imgdata: "",
        };
    },
    mounted() {
        this.onSubmit();
    },
    methods: {
        async onSubmit() {
            let res = await axios.post(
                this.form.url,
                {
                    config: this.config,
                },
                {
                    responseType: "blob",
                }
            );
            this.imgdata = window.URL.createObjectURL(res.data);
        },
    },
};
</script>
<style>
body {
    background-color: #fff;
}
</style>