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

van-uploader保存文件到后端回顯后端接口返回的數(shù)據(jù)

 更新時(shí)間:2023年06月13日 09:42:21   作者:鯨洛洛  
前端開(kāi)發(fā)想省時(shí)間就是要找框架呀,下面這篇文章主要給大家介紹了關(guān)于van-uploader保存文件到后端回顯后端接口返回的數(shù)據(jù),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

實(shí)現(xiàn)功能:

在移動(dòng)端使用van-uploader組件上傳圖片,然后調(diào)用接口保存到后端數(shù)據(jù)庫(kù),提交保存信息成功后,調(diào)用另外的接口返回?cái)?shù)據(jù)用來(lái)回顯uploaded的文件,(一般正常的返回?cái)?shù)據(jù)的接口是個(gè)圖片地址,可以直接顯示),我現(xiàn)在遇到的功能是返回了一個(gè)圖片地址,然后我需要在前端頁(yè)面自己去調(diào)一次圖片地址的接口。

 <div class="imgWrap">
            <!-- :max-count="3" -->
            <van-uploader
                :disabled="isUpload"
                :before-read="beforeUpHandle"
                :after-read="onRead"
                @click="emitCont"
                v-model="fileList"
                multiple
                :max-count="15"
                @delete="handleRemove"
            >
                <van-button
                    icon="photograph
"
                ></van-button>
                <div class="addImg">添加圖片</div>
            </van-uploader>
        </div>

對(duì)van-uploader組件不熟悉的可以去官網(wǎng)自行查看

保存信息的接口代碼:

這里要在文件讀取完成后的回調(diào)函數(shù)中使用

async function onRead(file: any, detail: any) {
? ? ? ? ? ? let formData = new FormData() //格式化必不可少,在里面添加接口需要傳的參數(shù)
? ? ? ? ? ? formData.append('file', file.file)
? ? ? ? ? ? formData.append('sort', detail.index)
? ? ? ? ? ? getUploadKey(formData).then(res => {
? ? ? ? ? ? ? ? if (res.resultCode === '00') {
? ? ? ? ? ? ? ? ? ? let result = res.data
? ? ? ? ? ? ? ? }
? ? ? ? ? ? })
? ? ? ? }

接下來(lái)是回顯接口返回的數(shù)據(jù)在uploader,這里主要遇到的是v-model的fileList綁定的值,把接口獲取的值直接賦值給fileList即可以。

1、獲取接口的值,我這邊假設(shè)為fetchData,我做了一個(gè)判斷,fetchData有值才調(diào)用圖片地址的數(shù)據(jù)

if (fetchData.value.length > 0) {
? ? ? ? ? ? ? ? //當(dāng)回顯的圖片有多張時(shí)需要做一個(gè)循環(huán)
? ? ? ? ? ? ? ? for (let i = 0; i < fetchData.value.length; i++) {
? ? ? ? ? ? ? ? ? ? let item =fetchData.value[i];
? ? ? ? ? ? ? ? ? ? item = {
? ? ? ? ? ? ? ? ? ? ? ? url: item.imgUrl, //這里的imgUrl后端接口返回的圖片地址
? ? ? ? ? ? ? ? ? ? ? ? sort: item.sort,? ?//這里的數(shù)據(jù)按照自己的實(shí)際情況添加,我是后面需要到sort才添加的,不然有url即可顯示
? ? ? ? ? ? ? ? ? ? }),
? ? ? ? ? ? ? ? ? ? ? ? console.log(item.url, 'uuuu')
? ? ? ? ? ? ? ? ? ? ?//開(kāi)始調(diào)用圖片地址接口,因?yàn)槲疫@里圖片接口返回的二進(jìn)制流圖片數(shù)據(jù)格式,前端需要處理才能顯示。如下使用的是:
1、先設(shè)置axios接收參數(shù)格式為"arraybuffer"
2、轉(zhuǎn)換為base64格式圖片數(shù)據(jù)在img標(biāo)簽顯示
3、return 'data:image/png;base64,' + btoa( new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '') );
? ? ? ? ? ? ? ? ? ? axios({
? ? ? ? ? ? ? ? ? ? ? ? method: 'get',
? ? ? ? ? ? ? ? ? ? ? ? url: item.url,
? ? ? ? ? ? ? ? ? ? ? ? headers: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? 'XXX-XXX-TOKEN': XXXXXX,//需要到token的小伙伴借鑒
? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? ? ? responseType: 'arraybuffer',
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? ? ? .then(res => {
? ? ? ? ? ? ? ? ? ? ? ? //若是沒(méi)有做這個(gè)obj的封裝,圖片將無(wú)法顯示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? let obj = {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? content: `data:image/png;base64,${btoa(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? new Uint8Array(res.data).reduce(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (data, byte) => data + String.fromCharCode(byte),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? )}`,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sort: item.sort,
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? fileList.value.push(obj)
? ? ? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? ? ? .catch(err => {
? ? ? ? ? ? ? ? ? ? ? ? ? ? reject(err.data)
? ? ? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }

補(bǔ)充:van-uploader這個(gè)組件要回顯圖片兩種方法:

1、提供圖片的base64字符串

直接把base64字符串加前綴之后,封裝成一個(gè)obj放入fileList,就可以直接回顯圖片

2、提供文件的二進(jìn)制流

(這種能回顯圖片因?yàn)楹蠖四芙邮苓@樣的請(qǐng)求方式。但現(xiàn)在很多框架不支持沒(méi)有完整請(qǐng)求頭的請(qǐng)求,那么就會(huì)請(qǐng)求不到后端圖片回顯失敗,這種方式還是有一定局限性的),我一開(kāi)始用的這個(gè)方法就是沒(méi)有實(shí)現(xiàn)回顯所以又考慮轉(zhuǎn)為base64格式來(lái)顯示。

總結(jié)

到此這篇關(guān)于van-uploader保存文件到后端回顯后端接口返回的數(shù)據(jù)的文章就介紹到這了,更多相關(guān)van-uploader保存文件到后端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3項(xiàng)目中eslint+prettier統(tǒng)一代碼風(fēng)格方式

    vue3項(xiàng)目中eslint+prettier統(tǒng)一代碼風(fēng)格方式

    這篇文章主要介紹了vue3項(xiàng)目中eslint+prettier統(tǒng)一代碼風(fēng)格方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • vue2安裝tailwindcss的詳細(xì)步驟

    vue2安裝tailwindcss的詳細(xì)步驟

    這篇文章主要介紹了vue2安裝tailwindcss,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • vue使用axios實(shí)現(xiàn)動(dòng)態(tài)追加數(shù)據(jù)

    vue使用axios實(shí)現(xiàn)動(dòng)態(tài)追加數(shù)據(jù)

    在vuejs中使用axios時(shí),有時(shí)候需要追加數(shù)據(jù),比如,移動(dòng)端下拉觸底加載,分頁(yè)加載,滑動(dòng)滾動(dòng)條等,下面小編就來(lái)為大家介紹一下如何使用使用axios實(shí)現(xiàn)動(dòng)態(tài)追加數(shù)據(jù)吧
    2023-10-10
  • Node.js+Vue腳手架環(huán)境搭建的方法步驟

    Node.js+Vue腳手架環(huán)境搭建的方法步驟

    這篇文章主要介紹了Node.js+Vue腳手架環(huán)境搭建的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • vue 的keep-alive緩存功能的實(shí)現(xiàn)

    vue 的keep-alive緩存功能的實(shí)現(xiàn)

    本篇文章主要介紹了vue 的keep-alive緩存功能的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • vue3語(yǔ)法中使用vscode打開(kāi)滿屏紅線報(bào)錯(cuò)的完美解決方法

    vue3語(yǔ)法中使用vscode打開(kāi)滿屏紅線報(bào)錯(cuò)的完美解決方法

    這篇文章主要介紹了vue3語(yǔ)法中使用vscode打開(kāi)滿屏紅線報(bào)錯(cuò)的完美解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 通過(guò)源碼分析Vue的雙向數(shù)據(jù)綁定詳解

    通過(guò)源碼分析Vue的雙向數(shù)據(jù)綁定詳解

    使用vue也好有一段時(shí)間了,雖然對(duì)其雙向綁定原理也有了解個(gè)大概,但也沒(méi)好好探究下其原理實(shí)現(xiàn),下面這篇文章通過(guò)源碼主要分析了Vue的雙向數(shù)據(jù)綁定,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • vue 中filter的多種用法

    vue 中filter的多種用法

    這篇文章主要介紹了vue 中filter的多種用法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2018-04-04
  • 如何獲取this.$store.dispatch的返回值

    如何獲取this.$store.dispatch的返回值

    這篇文章主要介紹了如何獲取this.$store.dispatch的返回值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue短信驗(yàn)證性能優(yōu)化如何寫(xiě)入localstorage中

    vue短信驗(yàn)證性能優(yōu)化如何寫(xiě)入localstorage中

    這篇文章主要介紹了vue短信驗(yàn)證性能優(yōu)化寫(xiě)入localstorage中的方法,解決這個(gè)問(wèn)題需要把時(shí)間都寫(xiě)到localstorage里面去,具體解決方法大家參考下本文
    2018-04-04

最新評(píng)論

民权县| 无为县| 天长市| 体育| 谢通门县| 宿迁市| 萍乡市| 焦作市| 无棣县| 吉安市| 雷州市| 潜山县| 鄂托克前旗| 桓台县| 绥滨县| 积石山| 孝义市| 咸阳市| 成都市| 武义县| 赤水市| 牡丹江市| 锡林郭勒盟| 大兴区| 大邑县| 元氏县| 罗山县| 精河县| 施秉县| 朝阳区| 新干县| 潢川县| 云南省| 临泽县| 海淀区| 卓资县| 绍兴市| 当阳市| 东乡| 金寨县| 上犹县|