🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
此webserver的文件上传和普通的文件上传有些出入,主要区别为: WorkerMan的$_FILES结构与传统PHP中的$_FILES结构不同,WorkerMan中$_FILES结构类似 ``` var_export($_FILES); array( 0 => array( 'file_name' => 'logo.png', // 文件名称 'file_size' => 23654, // 文件大小 'file_data' => '*****', // 文件的二进制数据 ), 1 => array( 'file_name' => 'file.tar.gz', // 文件名称 'file_size' => 128966, // 文件大小 'file_data' => '*****', // 文件的二进制数据 ), ... ); ``` 保存文件代码类似 ``` // 例如保存到/tmp目录下 foreach($_FILES as $file_info) { file_put_contents('/tmp/'.$file_info['file_name'], $file_info['file_data']); } ``` WorkerMan中无法使用move_uploaded_file() is_uploaded_file()这些函数。 ***** 本框架集成了一个文件上传基类,可以很方便的调用 调用示例: ``` $uplod = new \workerWeb\web\FileUpload();//声明文件上传类 $uplod->set('path', 'public/uploads/files');//指定上传目录,相对于webApp目录 $uplod->set('maxsize','20M');//设置上传文件最大限制 $uplod->set('allowtype',['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf']);//允许上传类型设置; //上传文件和获取文件名(如果上传多个请循环调用) $uplod->upload($_FILES[0]);//执行上传文件操作 var_dump($uplod->getFileName());//获取上传的文件名 ``` 文件上传类支持一些定义属性,定义方式为调用set方法`$upload->set('属性名','属性值');` 支持属性: | 属性名 | 类型 | 说明| |---|---|---| | path | string |文件存储目录,相对于webApp目录 | | allowtype | array | 设置允许上传文件的后缀 为空表示所有 默认为常见的图片类型 | |notype| array | 设置限制上传文件的后缀 为空表示无限制 默认为['php','html','js','css','htm'] | |maxsize | string | 限制上传大小 以 k、m、g、t结尾 |