欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

thinkphp6 上传文件

程序员文章站 2022-03-06 13:22:15
...
/**
 * 上传文件
 * @author 朝游东海
 * @param string $filename input框的name
 * @param string $filepath  存储路径
 * @param string $rule 验证规则
 * @param int $maxsize 允许文件上传的大小 默认为2m
 * @param bool $fileas 是否用原文件名上传保存 默认false
 * @return array
*/
public function upload($filename='file',$filepath='images',$rule='fileExt:jpg,jpeg,png,gif,pem|fileMime:image/jpeg,image/gif,image/png,text/plain',$maxsize=2097152,$fileas=false)
{
    $file = request()->file($filename);
    try {
        if($file->getSize() > $maxsize){
            return rMsg(0,'上传失败,文件超出大小,请选择'.floor($maxsize/1024/1024) . 'm以内的文件');
        }
        validate([$filename => $rule])->check([$filename => $file]);
        //$savename = Filesystem::disk('public')->putFile( $filepath, $file);  // /public/storage/images/5d16da691b5eb.png  根据内部方法生成文件名
        //$savename = Filesystem::disk('public')->putFileAs( $filepath.'/'.date('Ymd'), $file,$file->getOriginalName()); // /public/storage/images/Snipaste_2019-11-20_11-57-35.jpg  使用原文件名
        $savename = $fileas == false ? Filesystem::disk('public')->putFile( $filepath, $file) : Filesystem::disk('public')->putFileAs( $filepath.'/'.date('Ymd'), $file,$file->getOriginalName());
        return rMsg(1,'上传成功',['path'=>Filesystem::getDiskConfig('public', 'url') . '/' . str_replace('\\', '/', $savename)]);
    } catch (ValidateException $e) {
        return rMsg(0,$e->getMessage());
    }
}

采用layui的上传图片组件

后台处理

thinkphp6 上传文件

thinkphp6 上传文件

thinkphp6 上传文件


结果

thinkphp6 上传文件

thinkphp6 上传文件

thinkphp6 上传文件