vue中上传头像的方法及实现?

1.首先考虑上传的相关需求要求
(1) 格式要求(jpg | png | jpeg | gif )
(2) 大小要求(比如不超过300kb)
(3) 尺寸大小限制(1:1,4:9,9:16)
(4) 是否可以裁剪
(5) 单张还是多张(单张一般用在用户头像)

2.html部分

<template>
  <div class="hello">
    <div class="user-header">
      <input type="file" name="image" accept="image/*" @change='onchangeImgFun'
       class="header-upload-btn user-header-com">
      <img  alt="" :src='imgStr' class="user-header-img user-header-com">
      <p class="tip">图片限制50kb <span class="error">{
    {errorStr}}span>p>
    div>
  div>
template>

3.css部分

4.js部分

export default {
     
  name: 'HelloWorld',
  data () {
     
    return {
     
      imgStr: require('../assets/upload.png'),
      errorStr: ''
    }
  },
  methods: {
     
    onchangeImgFun (e) {
     
      var file = e.target.files[0]
      console.log(file)
      // 获取图片的大小,做大小限制有用
      let imgSize = file.size
      console.log(imgSize)
      var _this = this // this指向问题,所以在外面先定义
      // 比如上传头像限制5M大小,这里获取的大小单位是b
      if (imgSize <= 50 * 1024) {
     
        // 合格
        _this.errorStr = ''
        console.log('大小合适')
        // 开始渲染选择的图片
        // 本地路径方法 1
        // this.imgStr = window.URL.createObjectURL(e.target.files[0])
        // console.log(window.URL.createObjectURL(e.target.files[0]))                  // 获取当前文件的信息
        
//base64方法 2
 var reader = new FileReader()
        reader.readAsDataURL(file) // 读出 base64
        reader.onloadend = function () {
     
          // 图片的 base64 格式, 可以直接当成 img 的 src 属性值
          var dataURL = reader.result
          console.log(dataURL)
          _this.imgStr = dataURL
          // 下面逻辑处理
        }
      } else {
     
        console.log('大小不合适')
        _this.errorStr = '图片大小超出范围'
      }
    }
  }
 }


你可能感兴趣的:(vue上传头像,methods,methods,vue,js,css,html)