国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp微信小程序 圖片&文件上傳并且支持圖片和文件預(yù)覽(pdf等文件預(yù)覽)巨細(xì)教學(xué)!

這篇具有很好參考價(jià)值的文章主要介紹了uniapp微信小程序 圖片&文件上傳并且支持圖片和文件預(yù)覽(pdf等文件預(yù)覽)巨細(xì)教學(xué)!。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

首先呢,小程序打開pdf等文件有下面幾種辦法:

  1. 用微信自帶的wx.downloadFile() + wx.openDocument()
  2. 使用web-view,uni-app中webview可以直接加載pdf文件
  3. 可以使用網(wǎng)上說的pdf.js去實(shí)現(xiàn)(我沒有用到這個(gè),就不介紹了)

網(wǎng)上查到很多資料顯示安卓是可以通過上面第一種辦法,但是ios用第一個(gè)方法打不開,網(wǎng)上、社區(qū)確實(shí)有這個(gè)說法,但是貌似bug被修復(fù)了,我經(jīng)過測試現(xiàn)在安卓和ios都可以打開。

如果大家遇到了這樣的bug,那可以安卓使用方法1,蘋果使用webview的方式打開文件

我上傳文件使用的是uni-ui的上傳組件:

這里要提一個(gè)bug就是說,這個(gè)組件設(shè)置v-model 后上傳文件后,按道理再去讀取這個(gè)v-model的值就應(yīng)該是之前上傳的文件數(shù)據(jù),但是打印后并沒有數(shù)據(jù),而只有在點(diǎn)擊刪除文件后,再讀取v-model才會(huì)有值,這個(gè)bug在社區(qū)很早就有人提出了,所以我采用通過監(jiān)聽select事件去手動(dòng)存儲(chǔ)文件數(shù)據(jù),然后對應(yīng)delete事件也刪除數(shù)組中對應(yīng)的文件數(shù)據(jù)。其次因?yàn)槲翼?xiàng)目中的需求是點(diǎn)擊文件名字預(yù)覽,那么文件的展示是手寫的,組件原本的文件展示我用display:none隱藏掉了。

<view style="width: 70%;margin: 0 auto;margin-bottom: 20rpx;">
        <uni-file-picker v-model="fileList" title="最多選擇9個(gè)文件" :list-styles="styleObject" :sourceType="['album', 'camera']"
          file-mediatype="all" ref="files" :limit="11" :auto-upload="false" @select="select" @success="success"
          @fail="fail" @progress="progress" @delete="deleteFile">
          <view class="clickBtn">點(diǎn)擊選擇文件</view>
        </uni-file-picker>
      </view>
      <view style="width: 70%;margin: 0 auto;margin-bottom: 20rpx;" v-for="(item, index) in ajaxFileList" :key="index">
        <view class="flex justify-start align-center">
          <view class="fileBox" @click="Preview(item)">{{ item.name }}</view>
          <view class="delBox" @click="delFile(index)">刪除</view>
        </view>
      </view>
 // 獲取上傳狀態(tài)
    select(e) {
      console.log('選擇文件:', e)
      e.tempFiles.forEach(item => {
        this.ajaxFileList.push({//用一個(gè)變量單獨(dú)存儲(chǔ)上傳的文件數(shù)據(jù)
          name: item.cloudPath,
          extname: item.extname,
          url: item.path,
        })
      });
      console.log(this.ajaxFileList);
    },
    deleteFile(e) {
      console.log('刪除文件:', e)
      this.ajaxFileList.forEach((item, index) => {
        if (e.tempFilePath === item.path) {
          this.ajaxFileList.splice(index, 1)
        }
      })
      console.log(this.ajaxFileList);
    },
    // 上傳成功
    success(e) {
      console.log('上傳成功')
    },
    // 上傳失敗
    fail(e) {
      console.log('上傳失?。?, e)
    },
    // 獲取上傳進(jìn)度
    progress(e) {
      console.log('上傳進(jìn)度:', e)
    },
    Preview(item) {//用正則去識別不同文件類型,然后對應(yīng)不同文件類型去做不同操作
      console.log(item);
      // 定義圖片類型的正則表達(dá)式
      const imageRegex = /(\.jpg|\.jpeg|\.png)$/i;
      // 定義文檔類型的正則表達(dá)式
      const docRegex = /(\.doc|\.docx|\.pdf)$/i;
      // 定義其他文件類型的正則表達(dá)式
      const othersRegex = /(\.txt|\.csv|\.xlsx)$/i;
      // 利用正則表達(dá)式判斷文件類型
      if (imageRegex.test(item.name)) {
        console.log("圖片類型");
        this.lookImage(item.url)
      } else if (docRegex.test(item.name)) {
        console.log("文檔類型");
        this.lookFile(item.url)
      } else if (othersRegex.test(item.name)) {
        console.log("其他文件類型");
      } else {
        uni.showToast({
          title: `未知文件類型`,
          icon: 'none',
          duration: 2000
        })
      }
    },
    delFile(index) {
      console.log(index);
      this.ajaxFileList.splice(index, 1)
    },
    lookImage(url) {
      let imgArray = [];
      imgArray[0] = url
      uni.previewImage({
        current: 0,
        urls: imgArray
      })
    },
    lookFile(url) {
    
      uni.openDocument({
        filePath: url,
        success: function (res) {
          console.log("打開文檔成功");
        },
        fail: function (res) {
          console.log("uni.openDocument,fail");
          console.log(res)
        },
        complete: function (res) {
          console.log("uni.openDocument,complete");
          console.log(res)
        }
      });
    },

如果大家的文件是https或者h(yuǎn)ttp的線上資源:

uni.downloadFile({
        url: url,
        success: function (res) {
          var filePath = res.tempFilePath;
          console.log("下載文件:",res);
          uni.openDocument({
            filePath: filePath,
            success: function (res) {
              console.log("打開文檔成功");
            },
            fail: function (res) {
            console.log("uni.openDocument,fail");
            console.log(res)
          },
          complete: function (res) {
            console.log("uni.openDocument,complete");
            console.log(res)
          }
          });
        },
        fail: function (res) {
        console.log('uni.downloadFile,fail')
        console.log(res)
      },
      complete: function (res) {
        console.log('uni.downloadFile,complete')
        console.log(res)
      }},
      );

我本次遇到的需求是單圖預(yù)覽、文件上傳時(shí)候支持預(yù)覽文件,

如果出現(xiàn)uni.openDocument安卓能打開,ios打不卡id情況那么就看下面的文章

https://blog.csdn.net/weixin_38673922/article/details/128626373

https://blog.csdn.net/liuxiaocaie/article/details/125874472文章來源地址http://www.zghlxwxcb.cn/news/detail-765849.html

到了這里,關(guān)于uniapp微信小程序 圖片&文件上傳并且支持圖片和文件預(yù)覽(pdf等文件預(yù)覽)巨細(xì)教學(xué)!的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序上傳文件及圖片(可以預(yù)覽)

    最近在寫小程序項(xiàng)目,碰到了一個(gè)需求,需要用戶可以上傳各種類型的文件和圖片,展示在頁面上,并且點(diǎn)擊還可以進(jìn)行預(yù)覽,就找了找微信小程序官網(wǎng),寫了一個(gè)例子,分享一下 直接看代碼: wxml: wxss: js: 有問題和建議歡迎大家留言

    2024年02月12日
    瀏覽(92)
  • uniapp微信小程序?qū)崿F(xiàn)大文件上傳 分片上傳 進(jìn)度條

    uniapp微信小程序?qū)崿F(xiàn)大文件上傳 分片上傳 進(jìn)度條

    一、安裝?? 二、頁面引入 ?三、實(shí)現(xiàn)功能(重要) ????????1.獲取圖片的路徑 ????????2.設(shè)置分片的大小 ????????3.將數(shù)據(jù)放入 四、實(shí)現(xiàn)上傳進(jìn)度條 全部函數(shù)js 五、修改npm的源碼,處理請求源碼中請求所攜帶的參數(shù)問題,以及報(bào)錯(cuò)處理(重要) 修改npm后的源碼。

    2024年02月03日
    瀏覽(44)
  • uniapp微信小程序 選擇聊天記錄文件上傳

    uniapp微信小程序 選擇聊天記錄文件上傳

    目錄 精簡版總結(jié) 示例 容易踩的坑 1、頁面刷新問題 2、extension問題 單文件 多個(gè)文件 PS:files和filePath/name只能二選一組 此處用xlsx文件作實(shí)例,選擇聊天記錄中的xlsx文件上傳到指定接口中。 因?yàn)槟承┪⑿虐姹緀xtension可能不生效,或者又想要對提交的文件名做校驗(yàn),建議參考我

    2024年02月09日
    瀏覽(434)
  • 微信小程序文件上傳、下載和圖片處理、文件操作API的使用

    微信小程序文件上傳、下載和圖片處理、文件操作API的使用

    這次按照我的理解來做這部分的筆記 首先,復(fù)習(xí)上節(jié)課所學(xué)的內(nèi)容。就是網(wǎng)絡(luò)請求api的使用 ?現(xiàn)在我有一個(gè)需求就是點(diǎn)擊按鈕實(shí)現(xiàn)獲取后端返回的圖片 ?先打開服務(wù)器 ?看一下我們要返回的圖片路徑 ?書寫結(jié)構(gòu) ?看一下返回來的數(shù)據(jù)。是在data下的banners里。因此我們封裝一下

    2024年02月04日
    瀏覽(30)
  • 微信小程序上傳文件(可傳 word、excel、ppt、視頻、圖片……)

    微信小程序上傳文件(可傳 word、excel、ppt、視頻、圖片……)

    近期做技術(shù)調(diào)研時(shí)發(fā)現(xiàn)微信官方支持文件上傳了,這里記錄一下 官方 API:wx.chooseMessageFile(Object object) 交互:從微信聊天里選擇文件(選一個(gè)好友/群聊,從你們聊天記錄里的文件里選) 點(diǎn)紅框是預(yù)覽,點(diǎn)右上角圓圈才是選中(昨天做技術(shù)調(diào)研時(shí)點(diǎn)紅圈部分是預(yù)覽,搞得我還以

    2024年02月11日
    瀏覽(23)
  • uniapp在微信小程序端調(diào)用攝像頭拍照并且把拍下的圖片上傳到后端

    需要注意的是我在代碼片段中用到 _this,因?yàn)槲遗潞瘮?shù)改變了this的指向所有我在方法的開頭就寫了 let _this = this

    2024年02月08日
    瀏覽(23)
  • uniApp 生成微信小程序圖片上傳提示 fail url not in domain list 的解決方法

    uniApp 生成微信小程序圖片上傳提示 fail url not in domain list 的解決方法

    uniApp 生成微信小程序,獲取內(nèi)容程序不報(bào)錯(cuò),但是圖片上傳提示 fail url not in domain list 錯(cuò)誤。 微信小程序:服務(wù)器域名配置 每個(gè)微信小程序需要事先設(shè)置通訊域名,小程序只可以跟指定的域名進(jìn)行網(wǎng)絡(luò)通信。包括普通 HTTPS 請求(wx.request)、上傳文件(wx.uploadFile)、下載文

    2024年02月16日
    瀏覽(24)
  • 微信小程序上傳文件(圖片)至阿里云OSS,包含后端代碼示例。

    微信小程序上傳文件(圖片)至阿里云OSS,包含后端代碼示例。

    ps:本文較為詳細(xì),需要有耐心的閱讀,要是圖片看不清楚可以下載到本地放大查看。 寫這篇博客的主要目的是因?yàn)閟erverless架構(gòu)下直接上傳圖片只能轉(zhuǎn)base64,且body大小有限制 一、在阿里云創(chuàng)建RAM用戶與角色 1.為什么要使用RAM用戶? 云賬號 AccessKey 是您訪問阿里云 API 的密鑰,具

    2024年02月04日
    瀏覽(27)
  • uniapp 發(fā)送全文件 支持App端ios、android,微信小程序,H5

    由于uniapp提供的API在app端只能上傳圖片和視頻,不能上傳其他文件,說以只能借助插件了。 ?ios端用的這個(gè)插件 獲取到文件對象 免費(fèi)的 ios-uniapp 文件選取word,pdf,xls等文件 - DCloud 插件市場 uniapp iOS文件選取 iOS選取text,pdf,word,doc,xls,ppt https://ext.dcloud.net.cn/plugin?id=1311 這個(gè)是返回一

    2024年02月16日
    瀏覽(88)
  • Uniapp基于微信小程序以及web端文件、圖片下載,帶在線文件測試地址

    Uniapp基于微信小程序以及web端文件、圖片下載,帶在線文件測試地址

    一、效果 傳送門 二、UI視圖

    2024年02月13日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包