亚洲国产精品成人无码区,公天天吃我奶躁我的比视频,亚洲国产欧美视频亚洲国产精品一区二区成人片不卡,天天躁日日躁狠狠躁视频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://m.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://m.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://m.oulysa.com/news/3830.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
国内精品久久久久影院蜜芽| 亚洲精品乱码久久久久久久久久久久| 国产精品秘入口福利姬网站| 精品少妇人妻av一区二区三区| 国产伦精品一区二区三区视频猫咪| 91精品国产免费无套国产| 少妇人妻偷人精品AV久久久久| 蜜臀av无码久久人妻| 亚洲午夜av无码私人影院| 中文字幕在线观看精品一区| 国产精品不卡a∨在线观看| 欧美高清无砖专区欧美精品| 玩50岁四川熟女大白屁股直播国产精品久久久久久久久电影网| 2021国产v亚洲v天堂无码| 国产无码免费高清一级片| 久久99久久精品免观看吃奶| 精品久久伊人中文字幕| 精品人妻一区二区三区四区| 久久精品中文字幕| 免费无码成人AV片在线在线播放| 亚洲欧美日韩v在线观看不卡| 国产成人91精品免费网址在线| 成全视成人免费观看在线看| 中文字幕色综合久久| AV网在线不卡免费看| 国产精品三级在线观看| 欧美亚洲人成网站在线观看| 国产精品毛片久久久久久久AV| 最近中文字幕大全免费版| 久久人妻少妇无码88综合| 99久热RE在线精品99 6热视频| 玩弄放荡人妻一区二区三区| 精品国产品香蕉在线| 人妻少妇精品久久| 精品国产成人一区二区| 日韩精品一区二区无码妖姬| 我要看a级毛片,深夜福利电影院| 草草影院ccyy国产日本欧美| 97国产在线看片免费人成视频| AV一区在线观看网站| 两口子交换真实刺激高潮|