亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js怎么利用FileReader實現圖片轉base64格式并上傳預覽頭像

發布時間:2022-05-23 11:26:42 來源:億速云 閱讀:462 作者:iii 欄目:開發技術

今天小編給大家分享一下js怎么利用FileReader實現圖片轉base64格式并上傳預覽頭像的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    修改用戶頭像,一般都會需要把圖片轉成base64格式,所以我們需要學會怎么利用FileReader轉換

    頁面布局:

    <template>
      <el-card class="box-card">
        <div slot="header" class="clearfix">
          <span>更換頭像</span>
        </div>
        <div>
          <!-- 圖片,用來展示用戶選擇的頭像 -->
          <img :src="Avatar" alt=""   v-if="Avatar"/>
          <img src="../../../assets/images/avatar.jpg" alt=""  v-else />
    
          <!-- 按鈕區域 -->
          <div class="btn-box">
            <input type="file"  ref="refIpt" @change="onIptChange">
            <el-button type="primary" icon="el-icon-plus" @click="chooseImg">選擇圖片</el-button>
            <el-button type="success" icon="el-icon-upload" :disabled="Avatar===''"  @click="upLoadAvatar">上傳頭像</el-button>
          </div>
        </div>
      </el-card>
    </template>

    思路分析:

    • 1.點擊button按鈕觸發input的點擊事件,所以需要給input設置ref拿到Dom

    • 2.給input設置change改變事件

      • 2.1設置一個變量接收轉換的數據

      • 2.2拿到事件目標,里面有個方法e.target.files是個偽數組.通過e.target.files.length判斷用戶是否選擇了圖片

      • 2.3通過new FileReader拿到一個實例

      • 2.4通過 實例名.readAsDataURL 將圖片轉成base64格式

      • 2.5onload可以監聽轉換完成后/給聲明變量賦值

    • 3.點擊上傳按鈕發送axios/上傳成功重新請求用戶信息實現信息刷新

    代碼:

    <script>
    export default {
      name: 'UserAvatar',
      data () {
        return {
          // 聲明一個變量存儲轉好的base64進制
          Avatar: ''
        }
      },
      methods: {
        // 點擊button觸發input點擊事件
        chooseImg () {
          this.$refs.refIpt.click()
        },
        // input內容改變事件
        // e拿到事件對象
        onIptChange (e) {
          // e.target.files是個偽數組/可以通過長度判斷用戶是否選擇了圖片
          if (e.target.files.length === 0) {
            // 點擊了取消了,就恢復默認圖片
            this.Avatar = ''
          } else {
            // FileReader 瀏覽器提供的方法
            const reader = new FileReader()
            // reader里面有個方法readAsDataURL 可以將圖片轉base64進制
            reader.readAsDataURL(e.target.files[0])
            // onload可以監聽轉換完成后
            reader.onload = () => {
            // 給聲明變量賦值
              this.Avatar = reader.result
            }
          }
        },
        // 點擊上傳頭像
        async  upLoadAvatar () {
          // 發送axios 上傳
          const { data: res } = await this.$http.patch('/my/update/avatar', { avatar: this.Avatar })
          // 判斷業務狀態碼是否上傳成功給出提示
          if (res.code !== 0) return this.$message.error(res.message)
          console.log(res)
          this.$message.success(res.message)
          // 上傳成功發送重新發送axios獲取最新用戶信息
          this.$store.dispatch('initUserInfo')
        }
      }
    
    }
    </script>

    以上就是“js怎么利用FileReader實現圖片轉base64格式并上傳預覽頭像”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    宣恩县| 长宁县| 台中县| 缙云县| 孟连| 大邑县| 大田县| 湘西| 新干县| 昌平区| 始兴县| 扎兰屯市| 昌宁县| 宝清县| 中牟县| 资中县| 开鲁县| 南雄市| 自贡市| 紫阳县| 昌黎县| 三明市| 进贤县| 成武县| 周宁县| 霍州市| 运城市| 和静县| 礼泉县| 保靖县| 荣成市| 航空| 灵山县| 宁化县| 贵南县| 永福县| 封开县| 鸡泽县| 桂东县| 嘉定区| 广州市|