[bhpyg] Thinkphp5 文件上传,多图片上传,多文件上传

<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;

class Upload extends Base
{
    /**
     * 上传logo图片(单文件)
     * @param type goods|brand|category
     * @param logo file
     * @return \think\Response
     */
    public function logo()
    {
        $params = input();
        $type = $params['image_type'] ?? 'other';
        //获取文件信息(对象)
        $file = request()->file('logo');
        if (empty($file)) {
            //必须上传商品logo图片
            $this->fail('请上传文件');
        }
        //将文件移动到指定的目录(public 目录下  uploads目录 goods目录)
        $dir = ROOT_PATH . 'public' . DS . 'uploads' . DS . $type;
        if(!is_dir($dir)) mkdir($dir);
        $info = $file->validate(['size' => 10*1024*1024, 'ext' => ['jpg', 'png', 'gif', 'jpeg']])->move($dir);
        if (empty($info)) {
            //上传出错
            $msg = $file->getError();
            $this->fail($msg);
        }
        //拼接图片的访问路径
        $logo = DS . "uploads" . DS . $type . DS . $info->getSaveName();
        $this->ok($logo);
    }
    public function image()
    {
        $params = input();
        $type = $params['image_type'] ?? 'other';
        //获取文件信息(对象)
        $file = request()->file('image');
        if (empty($file)) {
            //必须上传商品图片
            $this->fail('请上传文件');
        }
        //将文件移动到指定的目录(public 目录下  uploads目录 goods目录)
        $dir = ROOT_PATH . 'public' . DS . 'uploads' . DS . $type;
        if(!is_dir($dir)) mkdir($dir);
        $info = $file->validate(['size' => 10*1024*1024, 'ext' => ['jpg', 'png', 'gif', 'jpeg']])->move($dir);
        if (empty($info)) {
            //上传出错
            $msg = $file->getError();
            $this->fail($msg);
        }
        //拼接图片的访问路径
        $logo = DS . "uploads" . DS . $type . DS . $info->getSaveName();
        $this->ok($logo);
    }

    /**
     * 上传相册图片 多文件
     * @param type goods  default:goods
     * @param images files
     * @return array ['success'=>[], 'error'=>[]]
     */

    public function images()
    {
        $params = input();
        $type = $params['type'] ?? 'goods';
        //获取文件信息(对象)
        $files = request()->file('images');
        if (empty($files)) {
            //必须上传商品logo图片
            $this->fail('请上传文件');
        }
        //将文件移动到指定的目录(public 目录下  uploads目录 goods目录)
        $dir = ROOT_PATH . 'public' . DS . 'uploads' . DS . $type;
        if(!is_dir($dir)) mkdir($dir);
        $data = ['success'=>[], 'error'=>[]];
        foreach($files as $file){
            $info = $file->validate(['size' => 10*1024*1024, 'ext' => ['jpg', 'png', 'gif', 'jpeg']])->move($dir);
            if ($info) {
                //拼接图片的访问路径
                $data['success'][] = DS . "uploads" . DS . $type . DS . $info->getSaveName();
            }else{
                $data['error'][] = [
                    'name'=>$file->getInfo('name'),
                    'msg'=>$file->getError(),
                ];
            }
        }
        $this->ok($data);
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值