Vue+axios 前端页面展示后台传回的二进制流图片


输入框和图片的vue.js代码

<!--图片-->
            <el-form-item >
                <el-col :span="12">
                    <!--输入图片验证码-->
                    <el-form-item prop="captcha">
                        <el-input type="test" v-model="loginForm.captcha" auto-complete="off" placeholder="验证码, 单击图片刷新"
                                  style="width: 100%;">
                        </el-input>
                    </el-form-item>
                </el-col>
                <el-col class="line" :span="1">&nbsp;</el-col>
                <el-col :span="11">
                    <!--图片-->
                    <el-form-item>
                        <img style="width: 100%;" class="pointer" :src="loginForm.src" @click="refreshCaptcha">
                    </el-form-item>
                </el-col>
            </el-form-item>

data(){
	loginForm:{
                    userid:'admin',
                    password:'123',
                    captcha:'',
                    src:''
                },
}
methods:{
     refreshCaptcha(){
               this.$http.get('/Captcha.jpg',{
                   responseType: 'arraybuffer',

               })
                   .then(response => {
                       return 'data:image/png;base64,' + btoa(
                           new Uint8Array(response.data)
                               .reduce((data, byte) => data + String.fromCharCode(byte), '')
                       );
                   }).then(data => {
                   this.loginForm.src = data
               })
                console.log(this.loginForm.src)
            },
}

mounted(){
            this.refreshCaptcha()
        }

图片


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM