前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue上传和浏览图片(FileReader)

vue上传和浏览图片(FileReader)

作者头像
河湾欢儿
发布2018-12-06 11:42:36
3.5K0
发布2018-12-06 11:42:36
举报
代码语言:javascript
复制
<template>
    <div ref="box">
      ...
      <input ... />
      // 给个img来承担预览工作就行了
      <img :src="dataUrl" />
      ...
    </div>
</template>
<sctipt>
    data () {
        return {
            // 转base64码后的data字段
            dataUrl: ''
        }
    },
    methods: {,
        imgPreview (file) {
            let self = this;
            // 看支持不支持FileReader
            if (!file || !window.FileReader) return;
    
            if (/^image/.test(file.type)) {
                // 创建一个reader
                let reader = new FileReader();
                // 将图片将转成 base64 格式
                reader.readAsDataURL(file);
                // 读取成功后的回调
                reader.onloadend = function () {
                    self.dataUrl = this.result;
                }
            }
        },
        handleFileChange (e) {
            ...
            this.file = inputDOM.files[0];
            ...
            // 在获取到文件对象进行预览就行了!
            this.imgPreview(this.file);
            ...
        }
    }
</script>

上传

uploader的话选择完图片在handleFileChange里直接执行个请求上传

在父组件里获取值该怎么传怎么传

代码语言:javascript
复制
    ...vue
    <input :id="inputId" ... />
    ...
</template>
<script>
...
methods: {
    gengerateID () {
        let nonstr = Math.random().toString(36).substring(3, 8);
        if (!document.getElementById(nonstr)) {
            return nonstr
        } else {
            return this.gengerateID()
        }
    },
},
mounted () {
    this.inputId = this.id || this.gengerateID();
}    
...
</script>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档