微信小程序?qū)崿F(xiàn)上傳圖片小功能
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)上傳圖片的具體代碼,供大家參考,具體內(nèi)容如下
用到的api
wx.chooseMedia(); 用于拍攝或從手機(jī)相冊(cè)中選擇圖片或視頻
功能:點(diǎn)擊上傳圖片,可多選,或者拍照上傳;點(diǎn)擊圖片放大查看;長(zhǎng)按圖片刪除
效果圖

json里面引用weui的組件uploader
{
? "navigationBarTitleText": "評(píng)價(jià)工單",
? "usingComponents": {
? ? "mp-uploader": "weui-miniprogram/uploader/uploader",
? ? "mp-cells": "weui-miniprogram/cells/cells",
? ? "mp-cell": "weui-miniprogram/cell/cell"
? }
}wxml
<view class="weui-uploader">
? ? ?<view class="img-v weui-uploader__bd">
? ? ? ? <view class='pic' wx:for="{{technicianAssessPicture}}" wx:for-item="item" wx:key="*this">
? ? ? ? ? ? <image class='weui-uploader__img ' src="{{item}}" data-index="{{index}}" mode="aspectFill" bindlongpress="deleteTechnician" bindtap="previewTechnician">
? ? ? ? ? ? </image>
? ? ? ? </view>
? ? ? ? <view class="weui-uploader__input-box pic" bindtap="technicianImg"> </view>
? ? ?</view>
</view>js
data:(){
?? ?technicianAssessPicture: [], // 技師圖片
}
// 上傳技師圖片
? technicianImg: function (e) {
? ? var that = this;
? ? var technicianAssessPicture = this.data.technicianAssessPicture;
? ? if (technicianAssessPicture.length >= 9) {
? ? ? this.setData({
? ? ? ? lenMore: 1
? ? ? });
? ? ? setTimeout(function () {
? ? ? ? that.setData({
? ? ? ? ? lenMore: 0
? ? ? ? });
? ? ? }, 2500);
? ? ? return false;
? ? }
? ? wx.chooseMedia({
? ? ? count: 9, ? // 默認(rèn)9
? ? ? mediaType: ['image','video'], ? // 文件類(lèi)型
? ? ? // image?? ?只能拍攝圖片或從相冊(cè)選擇圖片?? ?
? ? ? // video?? ?只能拍攝視頻或從相冊(cè)選擇視頻
? ? ??
? ? ? // sizeType: ['original', 'compressed'], ?//所選的圖片的尺寸 ?original原圖,compressed壓縮圖
? ? ? // 僅對(duì) mediaType 為 image 時(shí)有效,是否壓縮所選文件
? ? ??
? ? ? sourceType: ['album', 'camera'], ?//圖片和視頻選擇的來(lái)源
? ? ? maxDuration: 30, ? // ?拍攝視頻最長(zhǎng)拍攝時(shí)間,單位秒。時(shí)間范圍為 3s 至 60s 之間。不限制相冊(cè)。
? ? ? camera: 'back', ? ?// 僅在 sourceType 為 camera 時(shí)生效,使用前置或后置攝像頭
? ? ? // ?back?? ?使用后置攝像頭;front?? ?使用前置攝像頭
? ? ? success: function (res) {
? ? ? ? var tempFilePaths = res.tempFiles;
? ? ? ? var technicianAssessPicture = that.data.technicianAssessPicture;
? ? ? ? for (var i = 0; i < tempFilePaths.length; i++) {
? ? ? ? ? if (technicianAssessPicture.length >= 9) {
? ? ? ? ? ? that.setData({
? ? ? ? ? ? ? technicianAssessPicture: technicianAssessPicture
? ? ? ? ? ? });
? ? ? ? ? ? return false;
? ? ? ? ? } else {
? ? ? ? ? ? const tempFilePaths1 = tempFilePaths.map(v=>v.tempFilePath)
? ? ? ? ? ? // ? tempFilePaths數(shù)據(jù)是json數(shù)組,我們需要的是普通數(shù)組需要處理一下
? ? ? ? ? ? technicianAssessPicture.push(tempFilePaths1[i]);
? ? ? ? ? }
? ? ? ? }
? ? ? ? that.setData({
? ? ? ? ? technicianAssessPicture: technicianAssessPicture
? ? ? ? });
? ? ? ? console.log(that.data.technicianAssessPicture, 'hhhhhhhhhhhhhhhhhhhhh');
? ? ? }
? ? });
? },處理后打印出來(lái)的數(shù)據(jù)

預(yù)覽,刪除
// 預(yù)覽圖片
previewTechnician: function (e) {
? ? //獲取當(dāng)前圖片的下標(biāo)
? ? var index = e.currentTarget.dataset.index;
? ? //所有圖片
? ? var technicianAssessPicture = this.data.technicianAssessPicture;
? ? wx.previewImage({
? ? ? //當(dāng)前顯示圖片
? ? ? current: technicianAssessPicture[index],
? ? ? //所有圖片
? ? ? urls: technicianAssessPicture
? ? })
? },
? // 長(zhǎng)按刪除
? deleteTechnician: function (e) {
? ? var that = this;
? ? var technicianAssessPicture = that.data.technicianAssessPicture;
? ? var index = e.currentTarget.dataset.index; ? ?// ? 獲取當(dāng)前長(zhǎng)按圖片下標(biāo)
? ? wx.showModal({
? ? ? // cancelColor: 'cancelColor',
? ? ? title: '提示',
? ? ? content: '確定要?jiǎng)h除此圖片嗎?',
? ? ? success: function (res) {
? ? ? ? if (res.confirm) {
? ? ? ? ? console.log('確定');
? ? ? ? ? technicianAssessPicture.splice(index, 1);
? ? ? ? } else if (res.cancel) {
? ? ? ? ? console.log('取消');
? ? ? ? ? return false;
? ? ? ? }
? ? ? ? that.setData({
? ? ? ? ? technicianAssessPicture
? ? ? ? })
? ? ? }
? ? })
},以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何在js中動(dòng)態(tài)修改元素的class屬性
在JavaScript中動(dòng)態(tài)修改CSS樣式是一種常見(jiàn)的操作,它允許開(kāi)發(fā)者根據(jù)不同的條件或者用戶(hù)的交互來(lái)改變網(wǎng)頁(yè)的外觀,這篇文章主要介紹了如何在js中動(dòng)態(tài)修改元素的class屬性的相關(guān)資料,需要的朋友可以參考下2025-04-04
PHP配置文件php.ini中打開(kāi)錯(cuò)誤報(bào)告的設(shè)置方法
這篇文章主要介紹了PHP配置文件php.ini中打開(kāi)錯(cuò)誤報(bào)告的設(shè)置方法,需要的朋友可以參考下2015-01-01
利用Javascript開(kāi)發(fā)一個(gè)二維周視圖日歷
這篇文章主要給大家介紹了關(guān)于利用Javascript如何開(kāi)發(fā)一個(gè)二維周視圖日歷的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
PhotoShop給圖片自動(dòng)添加邊框及EXIF信息的JS腳本
這篇文章主要介紹了PhotoShop給圖片自動(dòng)添加邊框及EXIF信息的JS腳本,本文給出效果圖和實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02
webpack4.x開(kāi)發(fā)環(huán)境配置詳解
這篇文章主要介紹了webpack4.x開(kāi)發(fā)環(huán)境配置方法,結(jié)合實(shí)例形式詳細(xì)分析了webpack4.x的具體安裝、項(xiàng)目創(chuàng)建、打包操作等相關(guān)問(wèn)題與處理技巧,需要的朋友可以參考下2018-08-08
javaScript同意等待代碼實(shí)現(xiàn)心得
javaScript功能描述:本程序?qū)崿F(xiàn)在同意某某協(xié)議頁(yè)面對(duì)同意按鈕進(jìn)行十秒鐘的禁用,同時(shí)在按鈕的Value顯示倒計(jì)時(shí)。2011-01-01
JS庫(kù)particles.js創(chuàng)建超炫背景粒子插件(附源碼下載)
particles.js用于創(chuàng)建粒子的輕量級(jí) JavaScript 庫(kù)。使用方法非常簡(jiǎn)單,代碼也很容易實(shí)現(xiàn),下面通過(guò)本文給大家分享JS庫(kù)particles.js創(chuàng)建超炫背景粒子插件附源碼下載,需要的朋友參考下吧2017-09-09
JS中的6種打斷點(diǎn)的方式實(shí)例總結(jié)
斷點(diǎn)調(diào)試是啥?難不難? 斷點(diǎn)調(diào)試其實(shí)并不是多么復(fù)雜的一件事,簡(jiǎn)單的理解無(wú)外呼就是打開(kāi)瀏覽器,打開(kāi)sources找到j(luò)s文件,在行號(hào)上點(diǎn)一下罷了,下面這篇文章主要給大家介紹了關(guān)于JS中6種打斷點(diǎn)方式的相關(guān)資料,需要的朋友可以參考下2022-04-04

