微信小程序图片选择、上传到服务器、预览(PHP)实现实例


Posted in Javascript onMay 11, 2017

微信小程序图片选择、上传到服务器、预览(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" data-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==''){
    wx.showToast({
     title: '内容不能为空',
     icon: 'loading',
     duration: 1000,
     mask:true
    })
   }
   wx.showLoading({
    title: '正在提交...',
    mask:true
   })
   //添加问题
   wx.request({
    url: 'https://xxxxxxxxxx/index.PHP?g=user&m=center&a=createwt',
    data: {
     content:content
    },
    method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
    header: app.globalData.header, // 设置请求的 header
    success: function (res) {
     // success
     if(typeof(res.data)=='number'){
      if (imglist != '') {
       //开始插入图片
       for(var i=0;i<imglist.length;i++){
        //上传至服务器
        wx.uploadFile({
         url: 'https://xxxxxxxx/index.php?g=user&m=center&a=upload', //仅为示例,非真实的接口地址
         filePath: imglist[0],
         name: 'files',
         formData: {
          'wtid': res.data
         },
         header: app.globalData.header,
         success: function (res) {
          if(i>=imglist.length){
           self.setData({
            imglist:[]
           })
           wx.hideLoading();
           wx.showToast({
            title: '提问成功',
            icon: 'success',
            duration: 2000,
            mask: true
           })
           wx.navigateBack({
            delta: 1
           })
          }
         }
        })
       }
       console.log(imglist);
      }else{
       wx.hideLoading();
       wx.showToast({
        title: '提问成功',
        icon: 'success',
        duration: 2000,
        mask: true
       })
       wx.navigateBack({
        delta: 1
       })
      }
     }else{
      wx.hideLoading();
      wx.showToast({
       title: res.data,
       icon: 'loading',
       duration: 1000,
       mask: true
      })
     }
    },
    fail: function (res) {
     self.onLoad();
    }
   })
 },
 //点击选择图片
 checkimg:function(){
   console.log('点击选择图片');
   self=this
   wx.chooseImage({
    count: 9, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    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('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath =   './Uploads/'; // 设置附件上传根目录
$upload->savePath =   ''; // 设置附件上传(子)目录
// 上传文件 
$info  =  $upload->upload();
if(!$info) {// 上传错误提示错误信息
  $this->error($upload->getError());
}else{// 上传成功 获取上传文件信息
//插入到数据库中
}
}
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
解密效果
Jun 23 Javascript
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
javascript抖动元素的小例子
Oct 28 Javascript
Javascript setInterval的两种调用方法(实例讲解)
Nov 29 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 Javascript
深入理解JS实现快速排序和去重
Oct 17 Javascript
详解JS去重及字符串奇数位小写转大写
Dec 29 Javascript
JS ES6多行字符串与连接字符串的表示方法
Apr 26 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
vue图片上传组件使用详解
Dec 23 Javascript
React 并发功能体验(前端的并发模式)
Jul 01 Javascript
微信小程序 setData使用方法及常用错误解决办法
May 11 #Javascript
jQuery zTree树插件动态加载实例代码
May 11 #jQuery
微信小程序中使用javascript 回调函数
May 11 #Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
May 11 #Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 #Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 #Javascript
JS实现的四级密码强度检测功能示例
May 11 #Javascript
You might like
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
python简单实现操作Mysql数据库
2018/01/29 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Python class的继承方法代码实例
2020/02/14 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
大学自荐信
2013/12/12 职场文书
青年志愿者事迹材料
2014/02/07 职场文书
参观接待方案
2014/03/17 职场文书
公司任命书模板
2014/06/06 职场文书
庆祝国庆节标语
2014/10/09 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
2015年女工委工作总结
2015/07/27 职场文书