微信小程序之多张图片上传到PHP后台

多张图片上传到PHP后台并存入数据库

微信前台代码

<!--pages/demo4/demo4.wxml-->
<view class="container">
    <view class="list">
        <button type="primary" class="button" bindtap="uploadImg">点击上传</button>
    </view>
</view>

多张图片递归上传js

// pages/demo4/demo4.js
Page({

 /**
  * 页面的初始数据
  */
 data: {

 },


 /**
   * 上传照片//选择图片时限制9张,如需超过9张,同理亦可参照此方法上传多张照片
   */
 uploadImg: function () {
  var that = this;
  wx.chooseImage({
   count: 2,
   sizeType: ['original', 'compressed'],
   sourceType: ['album', 'camera'],
   success: function (res) {
    var successUp = 0; //成功
    var failUp = 0; //失败
    var length = res.tempFilePaths.length; //总数
    var count = 0; //第几张
    that.uploadOneByOne(res.tempFilePaths, successUp, failUp, count, length);
   },
  });
 },


 /**
   * 采用递归的方式上传多张
   */
 uploadOneByOne(imgPaths, successUp, failUp, count, length) {
  var that = this;
  wx.showLoading({
   title: '正在上传第' + count + '张',
  })
  wx.uploadFile({
   url: 'http://49.122.47.146/php-yuyin/upload.php', //仅为示例,非真实的接口地址
   filePath: imgPaths[count],
   name: 'file',//示例,使用顺序给文件命名
   success: function (e) {
    successUp++;//成功+1
   },
   fail: function (e) {
    failUp++;//失败+1
   },
   complete: function (e) {
    count++;//下一张
    if (count == length) {
     //上传完毕,作一下提示
     console.log('上传成功' + successUp + ',' + '失败' + failUp);
     wx.showToast({
      title: '上传成功' + successUp,
      icon: 'success',
      duration: 2000
     })
    } else {
     //递归调用,上传下一张
     that.uploadOneByOne(imgPaths, successUp, failUp, count, length);
     console.log('正在上传第' + count + '张');
    }
   }
  })
 },

 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {

 },

 /**
  * 生命周期函数--监听页面初次渲染完成
  */
 onReady: function () {

 },

 /**
  * 生命周期函数--监听页面显示
  */
 onShow: function () {

 },

 /**
  * 生命周期函数--监听页面隐藏
  */
 onHide: function () {

 },

 /**
  * 生命周期函数--监听页面卸载
  */
 onUnload: function () {

 },

 /**
  * 页面相关事件处理函数--监听用户下拉动作
  */
 onPullDownRefresh: function () {

 },

 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function () {

 },

 /**
  * 用户点击右上角分享
  */
 onShareAppMessage: function () {

 }
})

单张图片上传js

// pages/demo4/demo4.js
Page({

 /**
  * 页面的初始数据
  */
 data: {

 },

 uploadImg:function(){
  wx.chooseImage({
   success(res) {
    const tempFilePaths = res.tempFilePaths
    wx.uploadFile({
     url: 'http://49.122.47.146/php-yuyin/upload.php', //仅为示例,非真实的接口地址
     filePath: tempFilePaths[0],
     name: 'file',
     formData: {
      'user': 'test'
     },
     success(res) {
      const data = res.data
      //do something
     }
    })
   }
  })
 },


 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {

 },

 /**
  * 生命周期函数--监听页面初次渲染完成
  */
 onReady: function () {

 },

 /**
  * 生命周期函数--监听页面显示
  */
 onShow: function () {

 },

 /**
  * 生命周期函数--监听页面隐藏
  */
 onHide: function () {

 },

 /**
  * 生命周期函数--监听页面卸载
  */
 onUnload: function () {

 },

 /**
  * 页面相关事件处理函数--监听用户下拉动作
  */
 onPullDownRefresh: function () {

 },

 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function () {

 },

 /**
  * 用户点击右上角分享
  */
 onShareAppMessage: function () {

 }
})

PHP后台代码

<?php
/**
 * Created by PhpStorm.
 * Date: 2019/10/11
 * Time: 16:41
 */
//设置编码utf—8
header('Content -type:text/html;charset=utf-8');


//连接数据库
$con = new mysqli("localhost","root","root","wxphp");
//定义sql语句

//接收数据并移动到uploads目录下
$file = "./uploads/".$_FILES['file']['name'];

if(move_uploaded_file($_FILES['file']['tmp_name'],$file)){
    //定义sql语句
    $sql = "INSERT INTO user(file) values('$file');";
    //发送sql语句
    $res = mysqli_query($con,$sql);
    echo "上传成功";

}else{
    echo "上传失败";
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长夜将尽 来日可期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值