| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | <?phpnamespace app\common\api;use app\common\validate\Upload;/** * Description of UploadApi * * @author sgq */class UploadApi {    protected $fileSize = 5 * 1024 * 1024;    protected $fileExt = "jpg,png,gif,pdf,xls,xlsx";    protected $fileMime = "image/jpg,image/png,image/gif,application/pdf,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";    public function __construct($config = []) {        $this->fileSize = isset($config["maxSize"]) ? $config["maxSize"] : $this->fileSize;        $this->fileExt = isset($config["fileExt"]) ? $config["fileExt"] : $this->fileExt;        $this->fileMime = isset($config["fileMime"]) ? $config["fileMime"] : $this->fileMime;    }    /**     * 批量上传文件     * @param type $files     * @return type     */    public function uploadList($files, $path = "uploadfiles") {        try {            validate(['image' => ["sileSize" => $this->fileSize, "fileExt" => $this->fileExt, "fileMime" => $this->fileMime]])                    ->check($files);            $savename = [];            foreach ($files as $file) {                $savename[] = \think\facade\Filesystem::disk("public")->putFile($path, $file);            }            return $savename;        } catch (\think\exception\ValidateException $e) {            echo $e->getMessage();        }    }    /**     * 单个文件上传     * @param type $file     * @param type $type 图片 => image 文件 => file 其他 => hybrid     * @return type     */    public function uploadOne($file, $type, $path = "uploadfiles") {        $upload_result = new \StdClass();        try {            switch ($type){                case 'image':                    $check = ['image' => $file];                    break;                case 'file':                    $check = ['file' => $file];                    break;                case 'hybrid':                    $check = ['hybrid' => $file];                    break;                case 'system':                    $check = ['system' => $file];                    break;                default:                    $upload_result->code = 500;                    $upload_result->msg = "不支持的上传类型";                    return $upload_result;            }            validate(Upload::class)->check($check);            $savename = \think\facade\Filesystem::disk("public")->putFile($path, $file);            $upload_result->code = 200;            $upload_result->filepath = $savename;            return $upload_result;        } catch (\think\exception\ValidateException $e) {            $upload_result->code = 500;            $upload_result->msg = $e->getMessage();            return $upload_result;        }    }}
 |