Server : nginx/1.20.1
System : Linux iZ2ze9ojcl78uluczwag69Z 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64
User : www ( 1000)
PHP Version : 7.3.28
Disable Function : passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/0531yanglao.com/app/common/utils/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/0531yanglao.com/app/common/utils/Upload.php
<?php
namespace app\common\utils;

use think\facade\Request;
use think\facade\Config;
use app\common\model\Attachment;
use app\common\model\Log;

class Upload
{
    //错误信息
    protected static $error;
    
    public static function uploadify($name = 'file', $path = '', $file = null)
    {
        //获取配置信息
        $config = self::getConfig();
        try {
            $file = is_object($file) ? $file : Request::file($name);
            if(empty($file)) {
                return false;
            }
            validate([$name => [
                'fileSize'  =>  1024 * 1024 * ((int)$config['fileSize'] ?? 2),
                'fileExt'  =>  $config['fileExt'],
                //'fileMime'  =>  'image/jpeg,image/png,image/gif',
            ]])
            ->check([$name =>  $file]);
            $savenames = \think\facade\Filesystem::disk('public')->putFile($path, $file , function() {
                return date('Ymd') . DIRECTORY_SEPARATOR . md5(uniqid(mt_rand()));
            });
            $hash = md5(uniqid(rand()));
            $name = $file->getOriginalName();
            $savenames = $config['url'] . '/' . $savenames;

            //写入附件表
            $data = [
                'name'  =>    $name,
                'filename'  =>    $savenames,
                'url'  =>    file_url($savenames),
                'hash'  =>    $hash,
            ];
            $model = Attachment::add($data);

            return [
                'aid'  =>  $model->aid,
                'originalName'  =>  $name,
                //'savename' => $savenames,
                'hash'  =>  $hash,
                'sort'  =>  $model->aid,
                //'url' => base_url() . ltrim($config['url'] ,'/') . '/' . $savenames
                'url' => file_url($savenames),
                'ext'   =>  $file->getOriginalExtension(),
            ];
        }catch (\Exception $e){
            Log::add($e->getMessage());
            $data = ['msg'=>$e->getMessage()];
            return $data;
        }catch (\think\exception\ValidateException $e) {
            Log::add($e->getMessage());
            $data = ['msg'=>$e->getMessage()];
            return $data;
        }
    }
    
    /**
     * 获取图片访问地址
     * @param unknown $filename 整形为主键,字符为文件名
     * @return string
     */
    public static function getUrl($filename)
    {
        if(empty($filename)) {
            return ;
        }
        $url = file_url($filename);

        return $url;
    }
    
    /**
     * 删除附件
     * @param unknown $filename 文件名
     * @return string
     */
    public static function delAttach($filename)
    {
        if(empty($filename)) {
            return false;
        }
        $config = self::getConfig();
        //$filename = public_path() . $filename;
        $filename = public_path() . parse_url($filename)['path'];
        @unlink($filename);
        
        return true;
    }
    
    /**
     * 获取配置信息
     * @return mixed|array
     */
    public static function getConfig()
    {
        return Config::get('filesystem.disks.public');
    }
    
}