vue文件流 转 base64 笔记

这段代码展示了如何使用Element-UI组件进行图片上传和预览功能的实现。通过`el-upload`组件,配合`FileReader`读取文件并转化为Base64格式,实现了图片的预览和处理。当文件列表发生变化时,更新表单中的图片数组。同时,提供了文件移除、超出限制提示、预览和确认移除文件的处理逻辑。
摘要由CSDN通过智能技术生成
/* 转化64格式图片 */
    getBase64(file) {
      return new Promise(function(resolve, reject) {
        let reader = new FileReader()
        let imgResult = ''
        reader.readAsDataURL(file)
        reader.onload = function() {
          imgResult = reader.result
        }
        reader.onerror = function(error) {
          reject(error)
        }
        reader.onloadend = function() {
          resolve(imgResult)
        }
      })
    },
 /* 使用 */   
 this.getBase64(file.raw).then((res) => {
          console.log(res)
        })

element-ui 实战

<el-upload
    class="upload-demo"
    action=""
    :on-preview="handlePreview"
    :on-remove="handleRemove"
    :on-change='handleChange'
    :before-remove="beforeRemove"
    multiple
    :limit="3"
    :on-exceed="handleExceed"
    :file-list="fileList"
    :auto-upload="false">
    <el-button size="small" type="primary">点击上传</el-button>
    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> 
</el-upload>
data() {
    return {
      fileList: [],
      form:{
      imgs:[]
      }
    };
  },  
methods: {
    getBase64(file) {
      return new Promise(function (resolve, reject) {
        let reader = new FileReader()
        let imgResult = ''
        reader.readAsDataURL(file)
        reader.onload = function () {
          imgResult = reader.result
        }
        reader.onerror = function (error) {
          reject(error)
        }
        reader.onloadend = function () {
          resolve(imgResult)
        }
      })
    },
    handleChange(file, fileList) {
      this.imageUrList = fileList
      this.form.imgs = []
      this.imageUrList.forEach(e => {
        this.getBase64(e.raw).then((res) => {
          this.form.imgs.push(res)
        })
      })
    },
    handleRemove(file, fileList) {
      console.log(file, fileList);
      this.imageUrList = fileList
      this.form.imgs = []
      this.imageUrList.forEach(e => {
        this.getBase64(e.raw).then((res) => {
          this.form.imgs.push(res)
        })
      })
    },
    handlePreview(file) {
      console.log(file);
    },
    handleExceed(files, fileList) {
      this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
    },
    beforeRemove(file, fileList) {
      return this.$confirm(`确定移除 ${file.name}`);
    }
  }      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中,可以使用以下代码将文件换为Base64: ```javascript async function fileToBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => { resolve(String(reader.result)); }; reader.onerror = (error) => { reject(error); }; }); } ``` 这个函数接受一个文件作为参数,将文件换为Base64格式,并返回一个Promise对象。你可以在你的Vue3组件中调用这个函数,如下所示: ```javascript fileToBase64(param.file).then((base64) => { // 将base64赋值给你需要的变量 }); ``` 请注意,你需要将`param.file`替换为你实际的文件对象。通过调用`fileToBase64`函数,你可以将文件换为Base64格式并在Vue3中使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [VUE3 Typescript 文件-Base64](https://blog.csdn.net/weixin_36991257/article/details/124712758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [vue二进制Base64图片展示](https://blog.csdn.net/weixin_43728978/article/details/127900092)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值