Codeigniter和上传zip文件

3
我目前正在使用Codeigniter框架构建网站后端。我遇到了一个问题,需要找到一种方法让用户上传一个压缩的图片文件夹,并在提交表单后解压缩该文件夹,将文件移动到服务器上的其他文件夹中,创建每个图片的缩略图并将其文件名添加到数据库中。如果这些图片是用于之前不存在的内容类型,则还需要创建一个包含该内容类型的目录。
我知道Codeigniter中有一个上传类,但我不确定它是否具备我所需的功能。请给予我一些建议?
谢谢

这是一个相当广泛的问题和一个具体的问题。你在哪个部分遇到了问题? - Jan Hančič
我遇到的特定问题是,我无法想出一种方法来解压缩并循环遍历所有内容。 - Udders
2个回答

4
正如Jan所指出的,这是一个广泛的问题(就像3或4个问题)。我不熟悉CodeIgniter框架,但是要解压文件,您可以执行以下操作:
function Unzip($source, $destination)
{
    if (extension_loaded('zip') === true)
    {
        if (file_exists($source) === true)
        {
            $zip = new ZipArchive();

            if ($zip->open($source) === true)
            {
                $zip->extractTo($destination);
            }

            return $zip->close();
        }
    }

    return false;
}

Unzip('/path/to/uploaded.zip', '/path/to/extract/');

3
您将无法使用Upload类进行任何图像或文件检查。上传类将允许您接受文件并检查其是否为ZIP格式,但它的功能仅限于此。
从那里开始,解压缩文件,然后对文件进行一些简单的PHP检查以确保它们是正确的类型,并创建您的文件夹等等。我建议把这个逻辑放在一个新的库中,以保持正确的分离。请参考解压缩

谢谢Phil,我想那可能就是我正在寻找的东西 :-) - Udders
你好,你提供的链接已经失效了。能否请你更新一下呢? - Akshit Arora
那个软件包在这里:https://github.com/philsturgeon/codeigniter-unzip 我建议你使用其他东西而不是它。即使你使用CodeIgniter,你也应该去Packagist安装通用的软件包。试试这个https://packagist.org/search/?tags=unzip - Phil Sturgeon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接