亚洲国产精品成人无码区,公天天吃我奶躁我的比视频,亚洲国产欧美视频亚洲国产精品一区二区成人片不卡,天天躁日日躁狠狠躁视频2021,起视碰看97视频在线少妇久久久久久人妻无码, 芒果乱码一线二线三线新区 ,亚洲熟妇无码AⅤ不卡在线播放,人妻少妇乱子伦无码专区

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

微信小程序選擇多張圖片上傳到服務(wù)器顯示上傳進(jìn)度(PHP)代碼全解

發(fā)表日期:2017-08-26 16:47:53   作者來(lái)源:方維網(wǎng)絡(luò)   瀏覽:13766   標(biāo)簽:微信小程序    圖片上傳    

方維網(wǎng)絡(luò)專注于網(wǎng)站建設(shè)和微信小程序定制開發(fā),今天給大家分享一下微信小程序選擇多張圖片上傳到服務(wù)器的實(shí)現(xiàn)及上傳進(jìn)度顯示的代碼全解與分享。

微信小程序多圖上傳示例

這里主要使用了兩個(gè)微信的接口

一、wx.chooseImage(OBJECT) 從本地相冊(cè)選擇圖片或使用相機(jī)拍照;
二、wx.uploadFile(OBJECT) 將本地資源上傳到開發(fā)者服務(wù)器,返回一個(gè) uploadTask 對(duì)象,通過(guò) uploadTask,可監(jiān)聽上傳進(jìn)度變化事件,以及取消上傳任務(wù)。

WXML代碼如下

<view class="picture_list">
    <view wx:for="{{upload_picture_list}}" class="picture_item">
         <image wx:if="{{item.upload_percent < 100}}" src="{{item.path}}"   mode="aspectFill"></image>
         <image wx:if="{{item.upload_percent == 100}}" src="{{item.path_server}}"   mode="aspectFill"></image>
         <view class="upload_progress" wx:if="{{item.upload_percent < 100}}">
              {{item.upload_percent}}%
         </view>
    </view>
    <view  class="picture_item">
    <image src="/images/btn_uploadpic.png" bindtap="uploadpic"  mode="aspectFill"></image>
    </view>
</view>

WXSS樣式代碼如下

.picture_list{
  padding:20px;
  display:flex;
  flex-direction: row;
  flex-wrap:wrap;
  justify-content:flex-start;
  align-items:flex-start;
  align-content:flex-start;
}
.picture_item{margin:10px;position:relative;width:160rpx;height:160rpx;}
.upload_progress{position:absolute;top:0;left:0;opacity:0.7;background-color:#000;color:#fff;width:160rpx;height:160rpx;text-align:center;line-height:160rpx;font-size:12px;}
.picture_item image{width:160rpx;height:160rpx;}

下面是關(guān)鍵的JS代碼

 
/**
   * 頁(yè)面的初始數(shù)據(jù)
   */
  data: {
    upload_picture_list:[]
  },
  uploadpic: function (e) {
    var that = this
    var upload_picture_list = that.data.upload_picture_list
    wx.chooseImage({
      count: 8, // 默認(rèn)9,這里顯示一次選擇相冊(cè)的圖片數(shù)量
      sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
      sourceType: ['album', 'camera'], // 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
      success: function (res) {
        // 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片
        var tempFiles = res.tempFiles
        //循環(huán)把圖片加入上傳列表
        for (var i in tempFiles) {
          tempFiles[i]['upload_percent'] = 0
          tempFiles[i]['path_server'] = ''
          upload_picture_list.push(tempFiles[i])
        }
        that.setData({
          upload_picture_list: upload_picture_list,
        }) 
        //循環(huán)把圖片上傳到服務(wù)器 并顯示進(jìn)度
        for (var j in upload_picture_list) {
          if (upload_picture_list[j]['upload_percent'] == 0) {
             upload_file_server(that,upload_picture_list,j)
          }
        }
      }
    })
  },


function upload_file_server(that,upload_picture_list,j) {
  console.log("開始上傳"+j+"圖片到服務(wù)器:")
  console.log(upload_picture_list[j])
  var upload_task = wx.uploadFile({
    url: 'http://www.oulysa.com/', //需要用HTTPS,同時(shí)在微信公眾平臺(tái)后臺(tái)添加服務(wù)器地址
    filePath: upload_picture_list[j]['path'],//上傳的文件本地地址
    name: 'file',
    formData: {'path': 'wxchat'},//附近數(shù)據(jù),這里為路徑
    success: function (res) {
      var data = JSON.parse(res.data) //字符串轉(zhuǎn)化為JSON
      if (data.Success == true) {
        var filename = "http://www.oulysa.com/" + data.SaveName
        upload_picture_list[j]['path_server'] = filename
      }
      that.setData({
        upload_picture_list: upload_picture_list
      }) 
      console.log("圖片上傳" + j +"到服務(wù)器完成:")
      console.log(upload_picture_list[j])
    }
  })
  upload_task.onProgressUpdate((res) => {
    // console.log('上傳進(jìn)度', res.progress)
    // console.log('已經(jīng)上傳的數(shù)據(jù)長(zhǎng)度', res.totalBytesSent)
    // console.log('預(yù)期需要上傳的數(shù)據(jù)總長(zhǎng)度', res.totalBytesExpectedToSend)
    upload_picture_list[j]['upload_percent'] = res.progress
    console.log('第' + j + '個(gè)圖片上傳進(jìn)度:' + upload_picture_list[j]['upload_percent'])
    console.log(upload_picture_list)
    that.setData({
      upload_picture_list: upload_picture_list
    }) 
    
  })
}

PHP代碼(服務(wù)器接受文件,以THINKPHP為例)
//$path為上傳路徑
public function upload($path){
if(IS_POST){
  $upload = new \Think\Upload(); // 實(shí)例化上傳類
  $upload->exts = array('jpg', 'bmp', 'gif', 'png', 'jpeg'); // 設(shè)置附件上傳類型
  $upload->saveName = array('randomname', '6');
  $upload->maxSize = 2024000;//圖片上傳
  $upload->rootPath = 'Public'; // 設(shè)置附件上傳目錄
  $upload->savePath = '/upload/' . $path . '/';
  $upload->autoSub = false;
  $info = $upload->upload();
  if (!$info) {// 上傳錯(cuò)誤提示錯(cuò)誤信息
     $data['Message'] = $upload->getError();
     $data['Success'] = false;
  } else {// 上傳成功
     foreach ($info as $file) {
         $filepath = "/" . $upload->rootPath . $file['savepath'] . $file['savename'];
         $data['Success'] = true;
         $data['SaveName'] = $filepath;
     }
  }
  $this->ajaxReturn($data);
}

這里備注下,就是最大并發(fā)送是10個(gè)文件一起上傳,同時(shí)默認(rèn)超時(shí)時(shí)間和最大超時(shí)時(shí)間都是 60s,上傳圖片進(jìn)度顯示需要基礎(chǔ)庫(kù) 1.4.0 開始才支持,如果版本太低需要做兼容處理或者不顯示進(jìn)度。

到此就算大功高成,微信小程序多圖上傳功能基本就算完成,此代碼示例方維網(wǎng)絡(luò)已經(jīng)測(cè)試通過(guò),如有問(wèn)題歡迎反饋我們的客服QQ

此文章為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。

如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.oulysa.com/news/3830.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
久久亚洲精品无码观看不卡| 国产精品天堂AVAV在线| 欧美97色伦欧美一区二区日韩| 东京热人妻无码一区二区av| 久久久免费精品视频| 色播艾小青国产专区在线播放| 精品国产污污免费网站入口在线| 2021精品国产综合久久| 看国产黄大片在线观看| 无码AV中文一区二区三区| 日本三级做a全过程在线观看互動交流| 无码人妻久久一区二区三区蜜桃| 欧美肥妇毛多水多BBXX水蜜桃| 一二三四在线观看免费高清在线观看动漫版| 国产在线精品91国自产拍免费| 久久人人爽天天玩人人妻精品| 亚洲一区二区三区无码视频| 亚洲人午夜射精精品日韩| 国产成人精品久久亚洲高清不卡p| 人妻精品久久中文字幕| 亚洲一线产区二线产区精华| 国产裸拍裸体视频在线观看| 特级做A爰片毛片A片免费| 给我免费播放的视频在线观看| 中文精品成人在线| 日韩精品无码一区二区三区| 国产精品 亚洲 无码 在线| 91高清国产经典在线观看| 久久久久人妻精品一区三寸| 美丽的姑娘在线播放国语| 日本国产成人精品亚洲欧美在线| 欧美精品AⅤ一区二区三区| 成年女人粗暴毛片免费观看| 国产成av人片在线观看天堂无码| 久久久久夜夜夜精品国产| 十八禁 又黄又大视频网站| 婷婷丁香五月天综合东京热| 人妻熟妇久久久久久XXX| 婷婷色婷婷开心五月四房播| 亚洲欧洲成人精品香蕉网| 粗粗色视频在线观看|