popphp / pop-file
该包已被废弃且不再维护。未建议替代包。
Pop PHP 框架的 Pop File 组件
2.1.0p1
2017-03-02 15:16 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.6.*
README
生命周期结束
pop-file 组件 v2.1.0 已生命周期结束。上传和 dir 子组件已被分支并推送到其他仓库
- popphp/pop-http (现在为 Pop\Http\Upload 类)
- popphp/pop-dir (现在为 Pop\Dir\Dir 类)
概述
pop-file
是一个用于管理文件上传和轻松遍历目录中文件的组件。在文件上传方面,您可以设置细粒度控制来管理特定的上传参数,如文件类型和文件大小。您还可以递归地遍历目录。
pop-file
是 Pop PHP 框架 的一个组件。
安装
使用 Composer 安装 pop-file
。
composer require popphp/pop-file
基本用法
文件上传
基本文件上传
use Pop\File\Upload; $upload = new Upload('/path/to/uploads'); $upload->useDefaults(); $upload->upload($_FILES['file_upload']); // Do something with the newly uploaded file if ($upload->isSuccess()) { $file = $upload->getUploadedFile(); } else { echo $upload->getErrorMessage(); }
以上代码创建上传对象,设置上传路径并设置基本默认值,包括最大文件大小为 10MB,以及允许的常见文件类型和常见不允许的文件类型数组。
文件上传名称和覆盖
默认情况下,文件上传对象不会覆盖同名文件。在上面的例子中,如果 $_FILES['file_upload']['name']
设置为 'my_document.docx' 且该文件已存在于上传路径中,它将被重命名为 'my_document_1.docx'。
如果您想启用文件覆盖,可以这样做
$upload->overwrite(true);
您还可以在上传时直接给文件指定一个名称,如下所示
$upload->upload($_FILES['file_upload'], 'my-custom-filename.docx');
如果您需要首先检查文件名是否重复,可以使用 checkFilename
方法。如果文件名存在,它将在文件名末尾添加 '_1',或者循环直到找到一个尚不存在的数字 (_#)。如果文件名尚不存在,它将返回原始名称。
$filename = $upload->checkFilename('my-custom-filename.docx'); // $filename is set to 'my-custom-filename_1.docx' $upload->upload($_FILES['file_upload'], $filename);
目录遍历
遍历目录
use Pop\File\Dir; $dir = new Dir('my-dir'); foreach ($dir->getFiles() as $file) { echo $file; }
如果您想递归遍历目录并获取每个文件的完整路径。
use Pop\File\Dir; $dir = new Dir('my-dir', [ 'absolute' => true, 'recursive' => true ]); foreach ($dir->getFiles() as $file) { echo $file; }
可选的布尔选项为 $options
数组参数
- 'absolute' => 将目录中项目的绝对、完整路径存储
- 'relative' => 将目录中项目的相对路径存储
- 'recursive' => 递归遍历目录
- 'filesOnly' => 仅存储对象中的文件(而不是其他目录)
清空目录
use Pop\File\Dir; $dir = new Dir('my-dir'); $dir->emptyDir(true);
将true
标志将同时删除实际目录。