微信小程序+Think PHP 5实现文件上传七牛云

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]);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值