微信小程序简单实现多图上传(附后端代码)

本来有打算写一套小程序开发简明教程的。觉得系统讲起来可能挺耗费时间的。就先写一些容易遇到的问题的解决吧。

今天是2017-10-23,记一下这个日期,万一小程序的文档改了可能这个问题就不复存在了。

问题:

小程序API中,wx.uploadFile接口只能一次上传一个文件。如果要开发一个多图上传的功能,怎么样才能实现呢?

解决:

使用for循环,遍历图片选择器文件路径。贴代码

  wx.chooseImage({
  count: 9, // 默认9
  sizeType: ['original', 'compressed'], 
  sourceType: ['album', 'camera'], 
  success: function (res) {
    var tempFilePaths = res.tempFilePaths
    for(var i=0;i<10;i++){
      wx.uploadFile({
        url: 'https://api.xianchen.com', //接口地址
        filePath: tempFilePaths[i],
        name: 'file',
        formData: {
          'user': 'test'
        },
        success: function (res) {
          var data = res.data
          //do something
        }
      })
    }
  }
})

后端代码:

后端使用PHP实现。需要注意的是,由于小程序上传传过来的文件名都是一样的,所以我们需要在服务端给传过来的文件改个名字。最简单的方式就是用Unix时间戳来命名。为了提高容错率,需要使用毫秒级的Unix时间戳。PHP不带这个函数,所以自己写了一个。

<?php
function msectime()  
{  
 list($msec, $sec) = explode(' ', microtime());  
 return (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);  
} 
$type=substr($_FILES["file"]["name"],strrpos($_FILES["file"]["name"],"."));
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" .msectime().$type);
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,021评论 25 709
  • 本文参与#漫步青春#征文活动,作者:姜彤,本人承诺,文章内容为原创,且未在其他平台发布。 那年芳华 人生就像车站 ...
    能饮一杯无_3120阅读 1,549评论 0 1
  • 大理的阳光真的好到爆炸。傍晚六点钟像平时一两点钟的样子,晒得脸上暖洋洋的,近五个小时坐火车的疲惫感瞬间消失不见。 ...
    私奔大叔阅读 1,756评论 0 0
  • 那个时代,青衣文士煮酒论诗,纵歌四海,华丽辞篇张口即来。 那个时代,不羁少年打马江湖,热血无畏,三尺冷锋寒光乍现。...
    春去也阅读 2,256评论 0 0
  • 有一个朋友,我们一起参加了多个线上训练营的活动,每次她都能完美地完成,而且还会一直持续,好像所谓的“结业仪式”跟她...
    木萧鸣阅读 2,890评论 0 1

友情链接更多精彩内容