tp6多文件上传接口开发,整个流程+postman测试(大解析)

路由:

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\facade\Route;


Route::post('goods/upload_goods', 'Goods/images');
//通过Route这个路由::post类型方式。为什么要用::静态函数呢?因为路由类文件就是用静态写的啊,在最下面的截图。第一个参数是写好后,怎么调用的。第二个参数是指向哪里的比如上面的指向Goods控制器/images方法的。用goods/upload_goods在地址栏里面写入的

控制器:

<?php
declare (strict_types = 1);//严格模式,代表举个例子,数据库中的字段必须与控制器中要使用的字段一致不然报错

namespace app\admin\controller;//这个文件在哪哥目录下。一级一级目录网上找。直到app停止了
use think\Validate;//调用验证器类文件
use think\Request;//调用请求类文件
use think\facade\View;//调用视图类文件
use think\facade\Db;//调用数据库链接类文件
use app\admin\validate\EnealValidate;//调用异常验证类文件
class Goods
{
  
public function images(Request $request)必须是请求类型的
{
   
    // 接收文件上传
    $file = $request->file("image");
    // 设定文件上传的大小
    $fileSize = 1024 * 1024 * 2;
    // 存储上传失败的信息
    $error = [];
    // 存储上传成功的信息
    $success = [];
    // 循环批量验证
    foreach ($file as $val) {
        // 捕获异常
        try {
            // 验证文件大小、后缀
            validate(['image' => 'fileSize:' . $fileSize . '|fileExt:jpg'])
                ->check(['image' => $val]);
            // 上传文件
            $saveName = \think\facade\Filesystem::putFile('swiper', $val);
            // 将成功后的路径保存到数组中
            $success[] = 'swiper/' . $saveName;
        } catch (\think\exception\ValidateException $e) {
            // 记录验证错误的失败信息
            $error= [
                'name' => $val->getOriginalName(),
                'msg' => $e->getMessage()
            ];
        }
    }
    // 组装返回数据的结果集
    $data = [
        'success' => $success,
        'error' => $error
    ];
    // 返回数据
    return json([$data]);
}
}

存储图片目录结构:
在这里插入图片描述
config/filesystem.php文件》

<?php

return [
    // 默认磁盘
    'default' => env('filesystem.driver', 'public'),//默认保存到public目录下
    // 磁盘列表
    'disks'   => [
        'local'  => [
            'type' => 'local',
            'root' => app()->getRuntimePath() . 'storage',
        ],
        'public' => [
            // 磁盘类型
            'type'       => 'local',
            // 磁盘路径
            'root'       => app()->getRootPath() . 'public/storage',//public目录下的storage目录下哦啊
            // 磁盘路径对应的外部URL路径
            'url'        => '/storage',
            // 可见性
            'visibility' => 'public',
        ],
        // 更多的磁盘配置信息
    ],
];

postman测试:
在这里插入图片描述
postman的格式

在这里插入图片描述static看到了不?

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贵哥的编程之路(热爱分享)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值