版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第tp5实现微信小程序多图片上传到服务器功能最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端,这里做一个讲解,希望对大家有所帮助。
1,小程序端:
在wxml文件中:
!--选择图片--
view
viewwx:for="{{imgs}}"wx:for-item="item"wx:key="*this"
imagesrc="{{item}}"data-index="{{index}}"mode="aspectFill"bindtap="previewImg"/image
viewdata-index="{{index}}"catchtap="deleteImg"删除/view
/view
viewbindtap="chooseImg"点击上传作业/view
/view
!--选择图片end--
在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){
varthat=this;
if(ame==''){
}else{
varimgs=this.data.imgs;
if(imgs.length=9){
this.setData({
lenMore:1
setTimeout(function(){
that.setData({
lenMore:0
},2500);
returnfalse;
wx.chooseImage({
//count:1,//默认9
sizeType:['original','compressed'],//可以指定是原图还是压缩图,默认二者都有
sourceType:['album','camera'],//可以指定来源是相册还是相机,默认二者都有
success:function(res){
//返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
vartempFilePaths=res.tempFilePaths;
varimgs=that.data.imgs;
//console.log(tempFilePaths+'');
for(vari=0;itempFilePaths.length;i++){
if(imgs.length=9){
that.setData({
imgs:imgs
returnfalse;
}else{
imgs.push(tempFilePaths[i]);
//console.log(imgs);
that.setData({
imgs:imgs,
//循环把图片上传到服务器
for(vari=0;iimgs.length;i++){
wx.uploadFile({
url:url+'Wx_SaveHomeWork',
filePath:imgs[i],
name:'files',
formData:{
cname:ame
success:function(res){
console.log(res)
//删除图片
deleteImg:function(e){
varimgs=this.data.imgs;
varindex=e.currentTarget.dataset.index;
imgs.splice(index,1);
this.setData({
imgs:imgs
//预览图片
previewImg:function(e){
//获取当前图片的下标
varindex=e.currentTarget.dataset.index;
//所有图片
varimgs=this.data.imgs;
wx.previewImage({
//当前显示图片
current:imgs[index],
//所有图片
urls:imgs
})
2,我们注意到我的wx.request请求中Wx_SaveHomeWork方法是后台服务器的接收图片方法,
后边我会把这个方法展示出来,
3.tp5后台controller中:
//存取学生作业信息
publicfunctionWx_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($filesas$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.讲解的不够清楚,因为是自己写的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从书中学会的成长心得分享(9篇)
- 电子商务平台运营方案优化策略工具
- 跨文化沟通与合作框架工具
- 企业信息数据化管理工具
- 河南省平顶山汝州市重点达标名校2026年初三下学期5月模拟考试语文试题含解析
- 四川省遂宁中学2026届初三第二学期月考英语试题试卷含解析
- 浙江省宁波镇海区六校联考2026届初三4月质量检查生物试题含解析
- 吉林省农安县新阳中学2025-2026学年初三5月检测试题语文试题含解析
- 资源开发合作契约承诺函(4篇)
- 2026年湖南省怀化市初三4月模拟考试(一模)语文试题含解析
- 空调销售安装合同范本
- 餐厨废弃物综合处理项目突发环境事件应急预案
- 冷作工工艺展开放样
- 电信网络诈骗防范指南
- 2023年土地复垦技术标准
- 2024高考数学讲义:三角函数及其解题
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- 《低压配电设备安装与调试》课件 劳动 学习任务2 挂壁式配电箱安装与调试
- 入职申请表(完整版)
- 人教版2023七年级上册英语单词表
- 医院保洁员院感知识培训课件
评论
0/150
提交评论