最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue結(jié)合ElementUI上傳Base64編碼后的圖片實(shí)例

 更新時(shí)間:2022年04月08日 16:38:01   作者:陽(yáng)光之末亞  
這篇文章主要介紹了Vue結(jié)合ElementUI上傳Base64編碼后的圖片實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

ElementUI上傳Base64編碼后的圖片

自我認(rèn)為ElementUI還是一個(gè)很不錯(cuò)的寫(xiě)手機(jī)端的組件,所以這次做小項(xiàng)目的時(shí)候就用了ElementUI的Upload組件來(lái)實(shí)現(xiàn)圖片的上傳,不過(guò)ElementUI組件的上傳圖片更易于實(shí)現(xiàn)圖片以File文件的形式實(shí)現(xiàn),但是這次我需要把圖片轉(zhuǎn)換為base64編碼來(lái)實(shí)現(xiàn)圖片的上傳。

安裝ElementUI

npm i element-ui -S

按需引入(當(dāng)然如果需要你也可以全部引入)

import { Upload } from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(Upload);

上傳實(shí)現(xiàn) 

<template>
? ? <div>
? ? ? ?<el-upload
? ? ? ? ? class="avatar-uploader"
? ? ? ? ? :action="actionUrl"
? ? ? ? ? :show-file-list="false"
? ? ? ? ? :on-change="getFile">
? ? ? ? ? <img v-if="imageUrl" ref="phoUrl" :src="imageUrl" class="avatar">
? ? ? ? ? <i v-else class="el-icon-plus avatar-uploader-icon"></i>
? ? ? ? </el-upload>
? ? </div>
</template>
<script>
import {Toast} from "mint-ui";
export default {
? ?data() {
? ? ? return {
? ? ? ?actionUrl:'',
? ? ? ?imageUrl:'', //上傳圖片
? ? ? };
? ? },
? ? methods: {
? ? ?getBase64(file){ ?//把圖片轉(zhuǎn)成base64編碼
? ? ? ? ?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);
? ? ? ? ? ? ?}
? ? ? ? ?})
? ? ?},
? ? ?getFile(file,fileList){ ?//上傳頭像
? ? ? ?this.getBase64(file.raw).then(res=>{
? ? ? ? ? ?this.$http.post('home/ImgUpload',{"img":res}).then(result=>{
? ? ? ? ? ? ? ?if(result.body.status===200){
? ? ? ? ? ? ? ? ? ?this.imageUrl=result.body.data;
? ? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ? ?Toast('圖片上傳失敗');
? ? ? ? ? ? ? ?}
? ? ? ? ? ?})
? ? ? ?})
? ? ?}
? ? }
}
</script>
<style>
? .avatar-uploader .el-upload {
? ? border: 1px dashed #d9d9d9;
? ? border-radius: 6px;
? ? cursor: pointer;
? ? position: relative;
? ? overflow: hidden;
? ? width:101px;
? ? height:101px;
? }
? .avatar-uploader .el-upload:hover {
? ? border-color: #409EFF;
? }
? .avatar-uploader .el-upload .el-upload__input{
? ? ? display: none;
? }
? .avatar-uploader-icon {
? ? font-size: 28px;
? ? color: #8c939d;
? ? width: 100px;
? ? height: 100px;
? ? line-height: 100px;
? ? text-align: center;
? }
? .avatar {
? ? width: 100px;
? ? height: 100px;
? ? display: block;
? }
</style>

ElementUI把上傳的圖片轉(zhuǎn)為Base64

使用組件,然后on-change綁定一個(gè)方法來(lái)獲取文件信息,auto-upload設(shè)置為false即可 

?<el-upload action='' :on-change="getFile" :limit="1" list-type="picture" :auto-upload="false">
? ? ? ? ? ? <el-button size="small" type="primary">選擇圖片上傳,最多上傳一張圖片</el-button>
? ? ? ? ? </el-upload>

定義methods方法,當(dāng)上傳文件就會(huì)觸發(fā)綁定的函數(shù),然后文件的內(nèi)容就會(huì)綁定到函數(shù)的參數(shù)里面,這樣用file.raw就可以獲取文件的內(nèi)容了。

? getFile(file, fileList) {
? ? ?console.log(file.raw)
? ? },

然后自定義一個(gè)方法,用來(lái)把圖片內(nèi)容轉(zhuǎn)為base64格式,imgResult就是base64格式的內(nèi)容了。轉(zhuǎn)為base64字符串要調(diào)用h5特性中的FileReader這個(gè)api,但是這個(gè)api不能return,所以用promise封裝一下。

?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);
? ? ? ? };
? ? ? });
? ? },

最后調(diào)用一下

?getFile(file, fileList) {? ??
? ? ? this.getBase64(file.raw).then(res => {
? ? ? console.log(res)
? ? ? });
? ? },

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3 框架Arco Design詳解

    Vue3 框架Arco Design詳解

    Arco Design 作為一款專為 Vue3 打造的企業(yè)級(jí) UI 組件庫(kù),以其豐富的特性和卓越的性能,成為現(xiàn)代 Web 應(yīng)用開(kāi)發(fā)者值得關(guān)注的選擇,這篇文章主要介紹了Vue3 框架Arco Design詳解,需要的朋友可以參考下
    2024-08-08
  • Vue3中ref和reactive的基本使用及區(qū)別詳析

    Vue3中ref和reactive的基本使用及區(qū)別詳析

    這篇文章主要給大家介紹了關(guān)于Vue3中ref和reactive的基本使用及區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Vue3 table表格組件的使用

    Vue3 table表格組件的使用

    這篇文章主要介紹了Vue3 table表格組件的使用,文章圍繞table表格組件是如何使用的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • vue實(shí)現(xiàn)壓縮圖片預(yù)覽并上傳功能(promise封裝)

    vue實(shí)現(xiàn)壓縮圖片預(yù)覽并上傳功能(promise封裝)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)壓縮圖片預(yù)覽并上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Vue實(shí)現(xiàn)登錄保存token并校驗(yàn)實(shí)現(xiàn)保存登錄狀態(tài)的操作代碼

    Vue實(shí)現(xiàn)登錄保存token并校驗(yàn)實(shí)現(xiàn)保存登錄狀態(tài)的操作代碼

    這篇文章主要介紹了Vue實(shí)現(xiàn)登錄保存token并校驗(yàn)實(shí)現(xiàn)保存登錄狀態(tài),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • vue中實(shí)現(xiàn)監(jiān)聽(tīng)數(shù)組內(nèi)部元素

    vue中實(shí)現(xiàn)監(jiān)聽(tīng)數(shù)組內(nèi)部元素

    這篇文章主要介紹了vue中實(shí)現(xiàn)監(jiān)聽(tīng)數(shù)組內(nèi)部元素方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 很棒的vue彈窗組件

    很棒的vue彈窗組件

    這篇文章主要為大家詳細(xì)介紹了vue彈窗組件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • vite+vue3中如何使用router

    vite+vue3中如何使用router

    這篇文章主要介紹了vite+vue3中如何使用router問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 前端項(xiàng)目中的Vue、React錯(cuò)誤監(jiān)聽(tīng)

    前端項(xiàng)目中的Vue、React錯(cuò)誤監(jiān)聽(tīng)

    這篇文章主要介紹了前端項(xiàng)目中的Vue、React錯(cuò)誤監(jiān)聽(tīng),文章圍繞主題的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容介紹需要的小伙伴可以參考一下
    2022-04-04
  • Vue利用openlayers實(shí)現(xiàn)點(diǎn)擊彈窗的方法詳解

    Vue利用openlayers實(shí)現(xiàn)點(diǎn)擊彈窗的方法詳解

    點(diǎn)擊彈窗其實(shí)就是添加一個(gè)彈窗圖層,然后在點(diǎn)擊的時(shí)候讓他顯示出來(lái)罷了。本文將利用openlayers實(shí)現(xiàn)這一效果,快跟隨小編一起學(xué)習(xí)一下吧
    2022-06-06

最新評(píng)論

东丽区| 亚东县| 德江县| 墨江| 新源县| 慈溪市| 拉孜县| 涟源市| 吉林市| 临清市| 宿州市| 大埔县| 平度市| 新泰市| 恭城| 博爱县| 革吉县| 克什克腾旗| 安丘市| 太仓市| 鲁甸县| 安国市| 扶绥县| 湖州市| 行唐县| 柞水县| 蒙阴县| 休宁县| 阜新| 娄底市| 中宁县| 宜宾县| 尉氏县| 合肥市| 祁东县| 墨玉县| 苏尼特左旗| 桃园市| 诸暨市| 锡林郭勒盟| 桐庐县|