欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

在移動端使用van-uploader組件上傳圖片,然后調(diào)用接口保存到后端數(shù)據(jù)庫,提交保存信息成功后,調(diào)用另外的接口返回數(shù)據(jù)用來回顯uploaded的文件,(一般正常的返回數(shù)據(jù)的接口是個圖片地址,可以直接顯示),我現(xiàn)在遇到的功能是返回了一個圖片地址,然后我需要在前端頁面自己去調(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>

對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
? ? ? ? ? ? ? ? }
? ? ? ? ? ? })
? ? ? ? }

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

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

if (fetchData.value.length > 0) {
? ? ? ? ? ? ? ? //當(dāng)回顯的圖片有多張時需要做一個循環(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')
? ? ? ? ? ? ? ? ? ? ?//開始調(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 => {
? ? ? ? ? ? ? ? ? ? ? ? //若是沒有做這個obj的封裝,圖片將無法顯示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? 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這個組件要回顯圖片兩種方法:

1、提供圖片的base64字符串

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

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

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

總結(jié)

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

相關(guān)文章

  • vue修改對象的屬性值后頁面不重新渲染的實(shí)例

    vue修改對象的屬性值后頁面不重新渲染的實(shí)例

    今天小編就為大家分享一篇vue修改對象的屬性值后頁面不重新渲染的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue項(xiàng)目中定義全局變量、函數(shù)的幾種方法

    vue項(xiàng)目中定義全局變量、函數(shù)的幾種方法

    這篇文章主要介紹了vue項(xiàng)目中定義全局變量、函數(shù)的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 如何在vue3中使用滑塊檢驗(yàn)vue-puzzle-verification

    如何在vue3中使用滑塊檢驗(yàn)vue-puzzle-verification

    這篇文章主要介紹了在vue3中使用滑塊檢驗(yàn)vue-puzzle-verification的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Element Badge標(biāo)記的使用方法

    Element Badge標(biāo)記的使用方法

    這篇文章主要介紹了Element Badge標(biāo)記的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于Vue中$refs的探索淺析

    關(guān)于Vue中$refs的探索淺析

    這篇文章主要給大家介紹了關(guān)于Vue中$refs的探索,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解Vue CLI 3.0腳手架如何mock數(shù)據(jù)

    詳解Vue CLI 3.0腳手架如何mock數(shù)據(jù)

    這篇文章主要介紹了詳解Vue CLI 3.0腳手架如何mock數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • VUE之關(guān)于store狀態(tài)管理核心解析

    VUE之關(guān)于store狀態(tài)管理核心解析

    這篇文章主要介紹了VUE之關(guān)于store狀態(tài)管理核心解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue組件的使用教程詳解

    Vue組件的使用教程詳解

    組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼。這篇文章給大家介紹了vue組件的使用,需要的朋友參考下吧
    2018-01-01
  • vue.js表格組件開發(fā)的實(shí)例詳解

    vue.js表格組件開發(fā)的實(shí)例詳解

    Vue.js通過簡潔的API提供高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng)。在前端紛繁復(fù)雜的生態(tài)中,Vue.js有幸受到一定程度的關(guān)注,所以本文將從各方面對Vue.js的組件開發(fā)做一個深入介紹。有需要的朋友們可以參考借鑒。
    2016-10-10
  • Vuex模塊化用法?跨模塊調(diào)用的方式

    Vuex模塊化用法?跨模塊調(diào)用的方式

    這篇文章主要介紹了Vuex模塊化用法?跨模塊調(diào)用的方式,具有很好的參考價值,希望對大家有所幫助,
    2023-10-10

最新評論