溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序多張圖片上傳功能

發布時間:2020-09-07 23:29:01 來源:腳本之家 閱讀:194 作者:西江無月 欄目:web開發

微信小程序上傳圖片每次只能上傳一張,所有很多朋友就會問想要多張圖片上傳怎么辦?

這里使用遞歸,當上傳完一張圖片后重新執行這個函數,直到所有的圖片都上傳完成后,就不再調用該函數。

首先,我們來看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)這兩個個api

微信小程序多張圖片上傳功能

微信小程序多張圖片上傳功能

 示例代碼是這樣的:

wx.chooseImage({
 success: function(res) {
 var tempFilePaths = res.tempFilePaths
 wx.uploadFile({
 url: 'http://example.weixin.qq.com/upload', //僅為示例,非真實的接口地址
 filePath: tempFilePaths[0],
 name: 'file',
 formData:{
 'user': 'test'
 },
 success: function(res){
 var data = res.data
 //do something
 }
 })
 }
})

這里的示例代碼,是選擇圖片,然后上傳選中的圖片中的第一個圖片;

現在開始寫多張圖片上傳的例子

首先,我們還是要選擇圖片 

wx.chooseImage({
 success: function(res) {
 var tempFilePaths = res.tempFilePaths;//這里是選好的圖片的地址,是一個數組
 
 }
})

然后在app.js中寫一個多張圖片上傳的方法,后面引入,你也可以寫在一個JS文件中,后面引入:

 //多張圖片上傳
 function uploadimg(data){
 var that=this,
 i=data.i?data.i:0,
 success=data.success?data.success:0,
 fail=data.fail?data.fail:0;
 wx.uploadFile({
 url: data.url, 
 filePath: data.path[i],
 name: 'fileData',
 formData:null,
 success: (resp) => {
 success++;
 console.log(resp)
 console.log(i);
 //這里可能有BUG,失敗也會執行這里
 },
 fail: (res) => {
 fail++;
 console.log('fail:'+i+"fail:"+fail);
 },
 complete: () => {
 console.log(i);
 i++;
 if(i==data.path.length){ //當圖片傳完時,停止調用 
 console.log('執行完畢');
 console.log('成功:'+success+" 失?。?+fail);
 }else{//若圖片還沒有傳完,則繼續調用函數
 console.log(i);
 data.i=i;
 data.success=success;
 data.fail=fail;
 that.uploadimg(data);
 }
 
 }
 });
 }

多張圖片上傳的方法寫好了,下面就是引用:

var app=getApp();
Page({
 data:{
 pics:[]
 },
 choose:function(){//這里是選取圖片的方法
 var that=this;
 wx.chooseImage({
 count: 9-pic.length, // 最多可以選擇的圖片張數,默認9
 sizeType: ['original', 'compressed'], // original 原圖,compressed 壓縮圖,默認二者都有
 sourceType: ['album', 'camera'], // album 從相冊選圖,camera 使用相機,默認二者都有
 success: function(res){
 var imgsrc=res.tempFilePaths; 
 that.setData({
 pics:imgsrc
 });
 },
 fail: function() {
 // fail
 },
 complete: function() {
 // complete
 }
 })

 },
 uploadimg:function(){//這里觸發圖片上傳的方法
 var pics=this.data.pics;
 app.uploadimg({
 url:'https://........',//這里是你圖片上傳的接口
 path:pics//這里是選取的圖片的地址數組
 });
 },
 onLoad:function(options){

 }

})

剛好寫了一個node上傳圖片代碼,親測可以使用,

一個簡單的PHP接收代碼:

<?php 
 $imgname = $_FILES['file']['name'];
 $tmp = $_FILES['file']['tmp_name'];
 $filepath = 'now/';//記得要自己創建這個文件夾
 if(move_uploaded_file($tmp,$filepath.$imgname.".png")){
  echo "上傳成功";
 }else{
  echo "上傳失敗";
 }

 ?>

完結。

為大家推薦現在關注度比較高的微信小程序教程一篇:《微信小程序開發教程》小編為大家精心整理的,希望喜歡。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女