elementui el-from 怎樣顯示圖片_vue2.0使用weui.js的uploader組件上傳圖片(兼容移動端)...

44a3985adb8d3d6ed7c7a2f28d4e0b61.png

本文已同步到專業技術網站 www.sufaith.com, 該網站專注于前后端開發技術與經驗分享, 包含Web開發、Nodejs、Python、Linux、IT資訊等板塊.

最近在使用 vue2.0開發微信公眾號網頁 其中涉及到 選擇圖片, 圖片的壓縮上傳, 預覽, 刪除等操作。

項目整體UI框架使用的是 vux, 但可惜的是 vux 并沒有提供 圖片上傳組件, 理由見 issue

由于之前寫PC端后臺系統時, 采用的 Element UI框架 Upload組件 來上傳圖片, 包括預覽刪除等功能,但是引用該組件到移動端時, 卻由于該組件的input標簽屬性和事件方法設置問題,不能正常使用. 鑒于此, 需要尋找一種可靠的方案,既能兼容移動端, 又便于直接上手.

以下是本人嘗試的兩種方案, 最終我選擇的是第二種: 引入weui.js, 并自定義上傳動作,異步獲取七牛token, 然后調用手動上傳方法.

一. 使用微信jssdk圖像上傳接口 微信網頁開發文檔

整個流程為:

(1) 顯示圖片

chooseImage 得到選定照片的本地ID列表

getLocalImgData 得到圖片的base64數據,可以用img標簽顯示. (此接口僅在 iOS WKWebview 下提供,用于兼容 iOS WKWebview 不支持 localId 直接顯示圖片的問題)

(2) 拿到圖片 File

uploadImage 上傳圖片接口, 返回圖片的服務器端ID

downloadImage 通過serverId 下載圖片到自己的服務器

總結:

優點: 移動端兼容性強, 可指定是原圖還是壓縮圖等參數, 代碼簡潔, 便于上手

缺點: (1) 只能在移動端使用,無法在PC端使用; (2) 采用流程為: 先上傳微信服務器, 然后下載拿到圖片, 最后存到自己的服務器, 這種方式開發邏輯冗雜, 上傳下載也耗費過多資源; (3)目前多媒體文件下載接口的頻率限制為10000次/天, 業務稍微多些,容易受接口頻率限制.

二. 使用微信開源的 weui.js

使用流程為:

1. 安裝jquery

1d737a4af54d0ecc46ef05733fac85bb.png

2. 在 /build/webpack.base.conf.js 文件中 配置 jquery 別名

22fa6ed01ec674c9ff62e370fa4e86fa.png

3. 下載 weui.js項目,并在本地打包編譯

git clone https://github.com/weui/weui.js.git
cd weui.js
npm install
npm run build

4. 將編譯后dist目錄下的 weui.min.js 復制到 我們的 vue 項目 /static/js/ 目錄下

77654aa855da637ec255c9e740535dc9.png

5. 安裝 weui, 并在 main.js 中導入weui.min.css

npm install --save weui // 安裝weuiimport 'weui/dist/style/weui.min.css' // 在main.js中導入weui.min.css

6. 在我們項目的vue文件中 引入 weui 的UI布局 Uploader

<div class="weui-cells weui-cells_form" id="uploader"><div class="weui-cell"><div class="weui-cell__bd"><div class="weui-uploader"><div class="weui-uploader__hd"><p class="weui-uploader__title">圖片上傳</p><div class="weui-uploader__info"><span id="uploadCount">0</span>/5</div></div><div class="weui-uploader__bd"><ul class="weui-uploader__files" id="uploaderFiles" @click="handleClickUploadList"></ul><div class="weui-uploader__input-box"><input name="file" id="uploaderInput" class="weui-uploader__input" type="file" accept="image/*" capture="camera" multiple=""/></div></div></div></div></div></div>

7. 在我們的vue文件中 導入 weui.js 和jquery

cefcc4889955df34b8fc791cff1ae75e.png

8.在javascript中定義變量

51469823b4ddf2bb008854d8cea82b9d.png

9. 在 vue文件 的 mounted 函數中調用weui.js的uploader方法

c6775996d6efb79d050691dbf8280df1.png

9f4d45528ef5e5c5738c20ad15803d2d.png

a54fde52743cad72a57ead7fe452d85e.png

10. 定義圖片預覽與刪除的函數

c90953323cbb584d00af7939665b6475.png

最終效果如下:

fc5a99057a588d6104af49b748470120.png

beed195c21ed8760d20d6460253b8dfd.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257634.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257634.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257634.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面向對象分析

在需求獲取階段&#xff0c;開發人員關注于理解用戶以及他們的使用要求。而在需求分析階段&#xff0c;開發人員關注于理解系統需要構建的內容&#xff0c;其核心是產生一個準確的、完整的、一致的和可驗證的系統模型&#xff0c;稱為分析模型。 面對對象的分析模型由三個獨立的…

python字典輸入學生信息_如何用Python將XML中的所有信息輸入字典

我通常使用標準庫中的ElementTree模塊解析XML。它沒有給你一個字典&#xff0c;你得到了一個更有用的DOM結構&#xff0c;它允許你為孩子們遍歷每個元素。from xml.etree import ElementTree as ETxml ET.parse("root_element xml.getroot()for child in root_element:.…

HDU4267(2012年長春站)

這道題真的是好題&#xff0c;讓我對線段樹有了全新的認識&#xff0c;至少讓我真正感受到了線段樹的神奇。 題意是就是線段樹區間更新&#xff0c;單點詢問的問題&#xff0c;不過這個題好就好在它的區間更新的點并不連續&#xff01; adding c to each of Ai which satisfies…

ITFriend創業敗局(四):菜鳥CEO的自我修養

自創業自封CEO以來&#xff0c;短短3個月&#xff0c;又經歷了無數的磨練&#xff0c;快速成長中。創業不同于打工&#xff0c;他要求你必須有全局觀和綜合能力&#xff0c;技術、市場、商務&#xff0c;啥都得會&#xff0c;還要處理各種各樣的問題和矛盾。根據個人經歷&#…

51nod 1050 循環數組最大子段和

1050 循環數組最大子段和 N個整數組成的循環序列a[1],a[2],a[3],…,a[n]&#xff0c;求該序列如a[i]a[i1]…a[j]的連續的子段和的最大值&#xff08;循環序列是指n個數圍成一個圈&#xff0c;因此需要考慮a[n-1],a[n],a[1],a[2]這樣的序列&#xff09;。當所給的整數均為負數時…

mysql設置token有效期_記住我 token保存到數據庫

記住我 token保存到數據庫這里使用jpamysqlorg.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-javaspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driverspring.datasource.urljdbc:mysql://127.0.0.1:3306/fly-demo?serverTimezoneUTC&…

Spark- Linux下安裝Spark

Spark- Linux下安裝Spark 前期部署 1.JDK安裝&#xff0c;配置PATH 可以參考之前配置hadoop等配置 2.下載spark-1.6.1-bin-hadoop2.6.tgz,并上傳到服務器解壓 [rootsrv01 ~]# tar -xvzf spark-1.6.1-hadoop2.6.tgz /usr/spark-1.6.1-hadoop2.6 3.在 /usr 下創建軟鏈接到目標文…

Linux Apache 怎么修改工作模式

Apache默認為prefork模式&#xff0c;主要是考慮到穩定性的原因。  要切換到worker模式&#xff0c;則需要登錄到linux上&#xff0c;進行如下操作&#xff1a;  進入/usr/sbin目錄  cd /usr/sbin  將當前的prefork模式啟動文件改名  mv httpd httpd.prefork  將wo…

python需要背的英語單詞怎么寫_學Python必須背的42個常見單詞,看看你都會嗎?...

這42個單詞是學習Python必須背會的單詞&#xff0c;也是代碼中常見的單詞。希望你能都背下來&#xff01;&#xff01;1. adult [?d?lt] 成年人2. authentication [???θent??ke??n] 身份驗證、認證、鑒定3. bit [b?t] 稍微、小量、小塊、一點4. byte [ba?t] …

viewDidLoad、viewWillAppear、viewWillDisappear

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil viewDidLoad viewWillAppear viewWillDisapppear《iOS編程》P137關于視圖的初始化代碼不能寫在視圖控制器的初始化&#xff08;1&#xff09;&#xff0c;原因如下&#xff1a;為…

asp.net mvc4開啟SqlServer 會話共享模式

2019獨角獸企業重金招聘Python工程師標準>>> 應用部署結構&#xff08;精簡&#xff09;: 站點部署在Nginx后面&#xff0c;以Nginx作為反向代理&#xff0c;不希望在Nginx上設置ip_hash&#xff0c;實現比較真實的負載均衡效果。 這時考慮到需要讓site1和site2同時…

SpringMVC中,前臺jsp封裝參數,綁定參數,傳遞參數到后臺controller的過程詳解

前臺到后臺的流程&#xff1a;前臺jsp->后臺:controller控制器層->service業務層->DAO數據訪問層->數據庫model模型層。 從上面流程可知&#xff0c;前臺jsp的數據&#xff0c;想要參與到后臺的業務邏輯運算&#xff0c;關鍵是要先把前臺jsp的數據傳遞到后臺的cont…

包含min函數的棧 python_面試題_設計包含 min函數的棧

設計包含 min函數的棧()定義棧的數據結構&#xff0c;要求添加一個 minminmin函數&#xff0c;能夠得到棧的最小元素。要求函數 min、push以及 pop 的時間復雜度都是 O(1)。#include using namespace std;/*by hk 2015-7-1*/#define MAX ((~(unsigned int )0)-1)/2class stack{…

【轉】(五)unity4.6Ugui中文教程文檔-------概要-UGUI Interaction Components

原創至上&#xff0c;移步請戳&#xff1a;&#xff08;五&#xff09;unity4.6Ugui中文教程文檔-------概要-UGUI Interaction Components 4、Interaction Components 本節涵蓋了處理交互&#xff0c;例如鼠標或觸摸事件和使用鍵盤或控制器交互的 UI系統中的組件。 4.1 Select…

j2ee 簡單網站搭建:(十)jquery ztree 插件使用入門

為什么80%的碼農都做不了架構師&#xff1f;>>> 《j2ee 簡單網站搭建&#xff1a;&#xff08;一&#xff09; windows 操作系統下使用 eclipse 建立 maven web 項目》《j2ee 簡單網站搭建&#xff1a;&#xff08;二&#xff09;添加和配置 spring spring-mvc 的…

實習報告

實習時間&#xff1a;2016/2/18-2016/2/24 實習地點&#xff1a;陜西省米脂縣公安局網絡警察大隊     實習報告&#xff1a; 如今的社會&#xff0c;網絡高度發展&#xff0c;一些人隨著時代的潮流利用網絡發家致富&#xff0c;而有些人利用網絡監管的一些漏洞&#xff0c;…

java utf 8 轉unicode_java 在Unicode和UTF-8之間轉換

/*** utf-8 轉換成 unicode* author fanhui* 2007-3-15* param inStr* return*/public static String utf8ToUnicode(String inStr) {char[] myBuffer inStr.toCharArray();StringBuffer sb new StringBuffer();for (int i 0; i < inStr.length(); i) {UnicodeBlock ub …

Android成長日記-使用GridView顯示多行數據

本節將實現以下效果 Ps&#xff1a;看起來很不錯的樣子吧&#xff0c;而且很像九宮格/se ----------------------------------------------------------------------- 下面進入正題[s1] &#xff1a; Step 1&#xff1a;新建Layout&#xff0c;里面創建GridView <GridView a…

奪命雷公狗---微信開發39----微信語言識別接口1

語音識別接口的基本介紹 注意&#xff1a; 由于客戶端緩存&#xff0c;開發者開啟或者關閉語音識別功能&#xff0c;對新關注者立即生效&#xff0c;對已關注用戶需要24小時生效&#xff0c;開發者可以從新關注帳號進行測試。 我們可以在測試號下方的體驗接口權限表里面找到“接…

Codeforces 803E--Roma and Poker (DP)

原題鏈接&#xff1a;http://codeforces.com/problemset/problem/803/E 題意&#xff1a;給一個n長度的字符串&#xff0c;其中?可以替換成D、W、L中的任意一種&#xff0c;D等價于0, W等價于1、L等價于-1。輸出所有?被替換掉后&#xff0c;W和L的數目之差為k&#xff0c;且任…