首頁 >後端開發 >php教程 >PHP實作微信小程式上圖片選擇及上傳到伺服器和預覽

PHP實作微信小程式上圖片選擇及上傳到伺服器和預覽

不言
不言原創
2018-06-21 13:47:142768瀏覽

這篇文章主要介紹了微信小程式圖片選擇、上傳到伺服器、預覽(PHP)實現實例的相關資料,需要的朋友可以參考下

微信小程式圖片選擇、上傳到伺服器、預覽(PHP)實作實例

小程式實作選擇圖片、預覽圖片、上傳到開發者伺服器上

後台使用的tp3.2 圖片上傳

請求時候的header參考時可以去掉(個人後台驗證權限使用)

#小程式前端程式碼:

<view class="section">
 <form bindsubmit="bindFormSubmit">
  <textarea placeholder="请输入问题内容" name="content"/>
  <view class="">
   选择提问图片:  <label bindtap="checkimg">点击选择图片</label>
  </view>
  <view class="">
    <image wx:for="{{imglist}}" mode="aspectFit" bindtap="ylimg" src="{{item}}" style="width:75px;height:75px;" src="{{item}}"></image>
  </view>
  <button form-type="submit"> 提交 </button>
 </form>
</view>

小程式js程式碼:

data: {
  imglist:[]
 },
/**
  * form提交事件
  */
 bindFormSubmit:function(e){
   self=this
   //图片
   var imglist = self.data.imglist
   //提问内容
   var content=e.detail.value.content;
   if(content==&#39;&#39;){
    wx.showToast({
     title: &#39;内容不能为空&#39;,
     icon: &#39;loading&#39;,
     duration: 1000,
     mask:true
    })
   }
   wx.showLoading({
    title: &#39;正在提交...&#39;,
    mask:true
   })
   //添加问题
   wx.request({
    url: &#39;https://xxxxxxxxxx/index.PHP?g=user&m=center&a=createwt&#39;,
    data: {
     content:content
    },
    method: &#39;GET&#39;, // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
    header: app.globalData.header, // 设置请求的 header
    success: function (res) {
     // success
     if(typeof(res.data)==&#39;number&#39;){
      if (imglist != &#39;&#39;) {
       //开始插入图片
       for(var i=0;i<imglist.length;i++){
        //上传至服务器
        wx.uploadFile({
         url: &#39;https://xxxxxxxx/index.php?g=user&m=center&a=upload&#39;, //仅为示例,非真实的接口地址
         filePath: imglist[0],
         name: &#39;files&#39;,
         formData: {
          &#39;wtid&#39;: res.data
         },
         header: app.globalData.header,
         success: function (res) {
          if(i>=imglist.length){
           self.setData({
            imglist:[]
           })
           wx.hideLoading();
           wx.showToast({
            title: &#39;提问成功&#39;,
            icon: &#39;success&#39;,
            duration: 2000,
            mask: true
           })
           wx.navigateBack({
            delta: 1
           })
          }
         }
        })
       }
       console.log(imglist);
      }else{
       wx.hideLoading();
       wx.showToast({
        title: &#39;提问成功&#39;,
        icon: &#39;success&#39;,
        duration: 2000,
        mask: true
       })
       wx.navigateBack({
        delta: 1
       })
      }
     }else{
      wx.hideLoading();
      wx.showToast({
       title: res.data,
       icon: &#39;loading&#39;,
       duration: 1000,
       mask: true
      })
     }
    },
    fail: function (res) {
     self.onLoad();
    }
   })
 },
 //点击选择图片
 checkimg:function(){
   console.log(&#39;点击选择图片&#39;);
   self=this
   wx.chooseImage({
    count: 9, // 默认9
    sizeType: [&#39;original&#39;, &#39;compressed&#39;], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: [&#39;album&#39;, &#39;camera&#39;], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
     // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
     var tempFilePaths = res.tempFilePaths
     self.setData({
      imglist:tempFilePaths
     })
    }
   })
 },
 //点击预览图片
 ylimg:function(e){
  wx.previewImage({
   current: e.target.dataset.src,
   urls: this.data.imglist // 需要预览的图片http链接列表
  })
 }

#php後台程式碼

//圖片上傳

public function upload(){
if(IS_POST){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize  =   3145728 ;// 设置附件上传大小
$upload->exts   =   array(&#39;jpg&#39;, &#39;gif&#39;, &#39;png&#39;, &#39;jpeg&#39;);// 设置附件上传类型
$upload->rootPath =   &#39;./Uploads/&#39;; // 设置附件上传根目录
$upload->savePath =   &#39;&#39;; // 设置附件上传(子)目录
// 上传文件 
$info  =  $upload->upload();
if(!$info) {// 上传错误提示错误信息
  $this->error($upload->getError());
}else{// 上传成功 获取上传文件信息
//插入到数据库中
}
}
}

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

如何使用PHP匯出資料到淘寶助理CSV

PHP實作微信大眾平台企業號驗證介面

以上是PHP實作微信小程式上圖片選擇及上傳到伺服器和預覽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn