1.wxml代码:
<l-image-picker count="3" bind:linchange="onChangeTap" />
2.js代码:
onChangeTap(e){
//获取所有的图片,类型是一个数组
var image=e.detail.all
var _this=this
//循环这个数组
for(var i=0;i<image.length;i++){
// 微信小程序内置的上传文件的方法
wx.uploadFile({
//单个图片
filePath: image[i],
//传到后台的名字
name: 'image',
//请求的网址
url: 'http://www.day13.com/home/Image/uploads',
//请求成功后回调函数
success: function(res){
//进行转义,否则图片无法正常显示
var name=JSON.parse(res.data)
//给转义后的名字覆给一个变量
var n=name.path
//追加到data中提前定义好的list数组中
_this.data.list.push(n)
}
})
}
}
3.利用composer下载依赖包
composer require qiniu/php-sdk
4.后台Think PHP 5代码:
public function uploads(){
//接收文件上传的值
$file = $_FILES;
//本地的文件路径
$localFilePath = $file['image']['tmp_name'];
//截取文件后缀名
//$suffix = '.jpg';
$suffix = strtolower(substr($file['image']['name'],strpos($file['image']['name'],'.')));
//生成一个唯一的文件名称,重命名 (md5加密原文件名+秒+随机数)
$fileName = md5($file['image']['name']) . date('s',time()) . rand(1,9999999);
$fileName .= $suffix;
//上传七牛云业务逻辑 这两个密钥获取在主页鼠标放到头像后点击密钥管理获取
$accessKey = '去控制台的秘钥管理拿AK'; //去控制台的秘钥管理拿AK
$secretKey = '去控制台的秘钥管理拿SK';//去控制台的秘钥管理拿SK
$auth = new Auth($accessKey, $secretKey);
//七牛云桶名,根据自己实际进行填写
$bucket = '七牛云桶名';
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传。
list($ret, $err) = $uploadMgr->putFile($token, $fileName, $localFilePath);
//错误信息提示
if ($err != null) {
//可调整为错误页面
$this->error('上传文件失败');
}
//把七牛云图片路径存储到我们自己的数据库 七牛云图片路径 此网址填写自己的网址
$imageUrl = 'http://此网址填写自己的网址/' . $fileName;
//返回文件名称
return json(['path'=>$imageUrl]);
}