PHP实现的多文件上传类及用法示例

这里提供一个PHP文件上传类及示例代码:

class UploadFiles {
    private $files = [];
    private $extensions = [];
    private $size = 0;

    public function addFile($name, $ext, $size) {
        $this->files[] = $name;
        $this->extensions[$name] = $ext;
        $this->size += $size;
    }

    public function saveFiles($path) {
        foreach ($this->files as $file) {
            if ($this->validateFile($file)) {
                $this->moveFile($file, $path);  
            } else {
                $this->deleteFile($file);
            }
        }
    }

    private function validateFile($file) {
        $valid = true;
        $ext = $this->extensions[$file];
        if (!in_array($ext, ['jpg', 'png', 'gif'])) {
            $valid = false; 
        } 
        if ($this->size > 1000000) {  // 100MB
            $valid = false;
        }
        return $valid;
    }

    private function moveFile($file, $path) {
        move_uploaded_file($file, "$path/$file");
    }

    private function deleteFile($file) {
        unlink($file);
    }
}

使用方法示例:

$upload = new UploadFiles();
$files = $_FILES['files']; 
foreach ($files['name'] as $i => $name) {
    $upload->addFile(
        $files['tmp_name'][$i], 
        pathinfo($files['name'][$i], PATHINFO_EXTENSION),
        $files['size'][$i]
    );
}  
$upload->saveFiles('upload/files');

此类实现了:

1. 存储上传文件的信息(名称、扩展名、大小)

2. 验证上传文件是否满足要求(扩展名和大小限制)

3. 移动合法的上传文件到指定目录

4. 删除不合法的上传文件

使用方法是先获取上传的文件信息,调用addFile()方法添加文件,然后调用saveFiles()方法处理上传保存操作。

可以根据自己的需要修改验证条件和保存目录。使用此类可以方便地实现PHP多文件上传功能。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论