php微信小程序多图上传,tp5实现微信小程序多图片上传到服务器功能

最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端,这里做一个讲解,希望对大家有所帮助。

1,小程序端:

在wxml文件中:

删除

点击上传作业

在js文件中:

Page({

/**

* 页面的初始数据

*/

data: {

index: 0,

multiIndex: [0, 0],

//传到后台的课程分类

cname:'',

},

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

},

/**

*

* 生命周期函数--监听页面初次渲染完成

*/

onReady: function () {

},

/**

* 生命周期函数--监听页面显示

*/

onShow: function () {

},

/**

* 生命周期函数--监听页面隐藏

*/

onHide: function () {

},

/**

* 生命周期函数--监听页面卸载

*/

onUnload: function () {

},

/**

* 页面相关事件处理函数--监听用户下拉动作

*/

onPullDownRefresh: function () {

},

/**

* 页面上拉触底事件的处理函数

*/

onReachBottom: function () {

},

/**

* 用户点击右上角分享

*/

onShareAppMessage: function () {

},

// 上传图片操作

// 上传图片

chooseImg: function (e) {

var that = this;

if(that.data.cname==''){

}else{

var imgs = this.data.imgs;

if (imgs.length >= 9) {

this.setData({

lenMore: 1

});

setTimeout(function () {

that.setData({

lenMore: 0

});

}, 2500);

return false;

}

wx.chooseImage({

// count: 1, // 默认9

sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有

sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

success: function (res) {

// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片

var tempFilePaths = res.tempFilePaths;

var imgs = that.data.imgs;

// console.log(tempFilePaths + '----');

for (var i = 0; i < tempFilePaths.length; i++) {

if (imgs.length >= 9) {

that.setData({

imgs: imgs

});

return false;

} else {

imgs.push(tempFilePaths[i]);

}

}

// console.log(imgs);

that.setData({

imgs: imgs,

});

//循环把图片上传到服务器

for (var i = 0; i < imgs.length; i++) {

wx.uploadFile({

url: url + 'Wx_SaveHomeWork',

filePath: imgs[i],

name: 'files',

formData: {

cname: that.data.cname

},

success: function (res) {

console.log(res)

}

})

}

}

});

}

},

// 删除图片

deleteImg: function (e) {

var imgs = this.data.imgs;

var index = e.currentTarget.dataset.index;

imgs.splice(index, 1);

this.setData({

imgs: imgs

});

},

// 预览图片

previewImg: function (e) {

//获取当前图片的下标

var index = e.currentTarget.dataset.index;

//所有图片

var imgs = this.data.imgs;

wx.previewImage({

//当前显示图片

current: imgs[index],

//所有图片

urls: imgs

})

},

})

2,我们注意到我的wx.request请求中Wx_SaveHomeWork方法是后台服务器的接收图片方法,

后边我会把这个方法展示出来,

3.tp5后台controller中:

//存取学生作业信息

public function Wx_SaveHomeWork(){

$files=\request()->file('files');

$cname=\request()->param('cname');

$cid=Db::name('course')->where('cname',$cname)->value('id');

$max_id=Db::name('homework')->max('id');

foreach($files as $item){

// 移动到框架应用根目录/public/uploads/ 目录下

$info = $files->rule('date')->move(ROOT_PATH . 'public' . DS . 'uploads');

if($info){

$saveName=str_replace("\\","/",$info->getSaveName());

$img='/uploads/'.$saveName;

$homework[]=['id'=>$max_id+1,'img'=>$img,'cid'=>$cid];

}

}

//把数据插入到作业表中

\db('homework')->insertAll($homework);

}

这里说一下,max_id的作用,因为接受的是多张图片,相当于一次性要存储多条数据,所以用max_id对id进行自增,存储到数据库表,cid是我自己数据库逻辑需要用到的变量,可以不用考虑,

4.讲解的不够清楚,因为是自己写的,感受不到难点在哪里,我自己的难点是在小程序端的图片上传,用了for循环,循环上传的方法,其他的相对来说,逻辑比较简单。

总结

以上所述是小编给大家介绍的tp5实现微信小程序多图片上传到服务器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技巧:在 C/C++中如何构造通用的对象链表

(转载至&#xff1a;http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip02/&#xff0c;感谢T. W. Burger先生) 一个简化的问题示例 链表的难点在于必须复制链表处理函数来处理不同的对象&#xff0c;即便逻辑是完全相同的。例如&#xff1a; 两个结构类似的链表 st…

php csv转excel 双引号,PHP高效导出Excel(CSV)

CSV&#xff0c;是Comma Separated Value(逗号分隔值)的英文缩写&#xff0c;通常都是纯文本文件。如果你导出的Excel没有什么高级用法的话&#xff0c;只是做导出数据用那么建议使用本方法,要比PHPexcel要高效的多。二十万数据导出大概需要2到3秒。/*** 导出excel(csv)* data …

linux php 上级目录,Linux目录架构详解_php

linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”&#xff0c;亲爱的读者&#xff0c;您都了解这些目录的含义吗?ls -l / 遍历文件系统(点击看大图)本文将引领您浏览…

t-sql中的事务控制及错误处理

------------------------------------------------事务控制----------------------------------------------------- Sql Server 2005/2008中提供了begin tran&#xff0c;commit tran和rollback tran来使用事务。begin tran表示开始事务&#xff0c; commit tran表示提交事务…

ADT

ADT:https://dl-ssl.google.com/android/eclipse/ SDK:http://developer.android.com/sdk/index.html转载于:https://www.cnblogs.com/Robbery/archive/2012/03/08/2385892.html

《那些年啊,那些事——一个程序员的奋斗史》——79

旧的4.3&#xff07;主板是废弃了&#xff0c;新的带CMMB的板子开始了。对于新的板子来说&#xff0c;其实只是在旧的板子上做改动&#xff0c;比如删掉蓝牙模块啊&#xff0c;去掉视频输入啊等&#xff1b;最大的不同&#xff0c;只是根据Telechips的原理图增加CMMB部分而已。…

Win配置Apache+mod_wsgi+django环境+域名

转自&#xff1a;http://liluo.org/2010/05/win-apache-mod_wsgi-django-domain/ Python是落落的最爱&#xff0c;Django是Python web framework中的佼佼者&#xff0c;所以一直超爱。当然&#xff0c;Python web server也有N多选择&#xff0c;这里落落使用Apachemod_wsgi来配…

screen执行php,Linux中screen命令及使用方法

Screen简介Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话&#xff0c;并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。GUN Screen&am…

CSS的历史与工作原理

1. 浏览器的发展与CSS网页浏览器主要通过HTTP协议连接网页服务器而取得网页&#xff0c;HTTP容许网页浏览器送交资料到网页服务器并且获取网页。目前最常用的 HTTP 是 HTTP/1.1&#xff0c;这个协议在RFC2616中被完整定义。HTTP/1.1 有其一套Internet Explorer并不完全支援的标…

java类可选,java – 是否有类可选,但非可选的类?

它是方便的声明函数映射值和消费它们&#xff0c;如果它们存在。在你有几个强制对象和几个可选的情况下&#xff0c;我发现自己包装在Optional.of(mandatoryObject)中的其他人&#xff0c;所以我可以使用相同的表达式&#xff0c;而不必向后写。Food vegetables Food.someVege…

数据库字符串处理函数

在数据库操作中&#xff0c;经常要进行字符串的拼接和替换等操作。下面总结归纳如下&#xff1a; 示例数据表people如下&#xff1a; 1 sql server数据库中的sql语句可以直接用 号进行字符串的拼接。举例如下&#xff1a; select Name ‘ ’ gentle as message from people …

[zz]Apache Thrift学习小记

参考&#xff1a; http://incubator.apache.org/thrift/ http://wiki.apache.org/thrift/FrontPage http://jnb.ociweb.com/jnb/jnbJun2009.html非常好的入门教程 http://developers.facebook.com/thrift/thrift-20070401.pdfthrift开发者写的论文 http://wiki.apache.org/thri…

php引用python出现502,【已解决】python执行出错:HTTPError: HTTP Error 502: Bad Gateway

【已解决】python执行出错&#xff1a;HTTPError: HTTP Error 502: Bad Gateway【背景】某此脚本执行&#xff0c;出现错误&#xff1a;LINE 1687 : ERROR Unknown Error !Traceback (most recent call last):File “E:WebServerWordPressto_wphi-baidu-mover_v2hi-baidu-mo…

can't load apple.laf.AquaLookAndFeel (Ant in Eclipse can't find it

转载自&#xff1a;http://lists.apple.com/archives/java-dev/2004/Oct/msg00529.html Re: "cant load apple.laf.AquaLookAndFeel" (Ant in Eclipse cant find it) Subject: Re: "cant load apple.laf.AquaLookAndFeel" (Ant in Eclipse cant find it)Fr…

php中的会话控制器,php – codeigniter检查每个控制器中的用户会话

另一个选项是创建基本控制器。将函数放在基本控制器中&#xff0c;然后继承。要在CodeIgniter中实现这一点&#xff0c;请在应用程序的libraries文件夹中创建一个名为MY_Controller.php的文件。class MY_Controller extends Controller{public function __construct(){parent::…

EXT.NET高效开发(一)——概述

之前就有想法说说这方面&#xff0c;直到看到我上一篇博客《EXT.NET复杂布局&#xff08;一&#xff09;——工作台》的回复&#xff1a; 小龙3&#xff1a;ext.net 比使用傳統的webform控件开发时间多多少&#xff1f; 我就决定提前写这一系列了。小龙3应该感到荣幸。嘿嘿。 相…

php 类的注释标准,php标准注释

文件头部模板/***这是一个什么文件**此文件程序用来做什么的(详细说明&#xff0c;可选。)。* author richard* version $Id$* since 1.0*/函数头部注释/*** some_func* 函数的含义说明** access public* param mixed $arg1 参数一的说明* param mixed $arg2 参数二的说明* par…

前端学习(417):京东制作页面25中间部分的准备工作

引入index.css作为中部样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Comp…

前端学习(418):京东制作页面26中间模块划分

index.css /* 中间模块 */ .grid{height: 480px;} .grid-coll1{width: 190px;height: 100%;background-color: pink;} .grid-coll2{width: 790px;height: 100%;background-color: skyblue;margin-left:10px;} .grid-coll3{width: 190px;height: 100%;background-color:purple;…

Linux下,安装配置Weblogic

Linux下&#xff0c;安装配置Weblogic2009-03-20 15:03一、安装配置JDK //如果应用不需要高版本的JDK的话&#xff0c;可以不单独安装JDK 1. 安装JDK # chmod ax jdk-1_5_0_15-linux-i586.bin # ./jdk-1_5_0_15-linux-i586.bin # mv jdk1.5.0_15 /usr/local/jdk //JDK安…