gpt4 book ai didi

php - Codeigniter - 获取多个文件,重命名它们,然后将其压缩

转载 作者:可可西里 更新时间:2023-10-31 22:58:02 26 4
gpt4 key购买 nike

我正在使用 codeigniter 制作一个网站,使用户能够下载文件,有点像 gmail。我的意思是用户只能下载 1 个文件或 zip 文件夹中的所有文件。

因为会有很多文件,所以我对它们的名称进行了编码以避免重复,并将它们的原始名称存储在一个数据库中,该数据库返回一个这样的数组:

Array
(
[0] => Array
(
[file_id] => 2
[file_name] => v6_copy.pdf
[file_path] => uploads/4/d5/67697ff58d09d3fb25d563bf85d3f1ac.pdf
)

[1] => Array
(
[file_id] => 3
[file_name] => v4_copy.pdf
[file_path] => uploads/7/cf/38212079635e93a8f8f4d4a3fc2a11ff.pdf
)

)

我需要做的是,获取每个文件,将它们重命名为原始名称,然后将其压缩成一个 zip。我目前正在尝试使用 codeigniter zip 助手,但我可以' 似乎能够重命名文件。

foreach ($query->result() as $row) // This returns what you see above
{
// I need to rename the file somewhere here
$this->zip->read_file($row->filename);
}

$this->zip->download('files_backup.zip');

有没有一种方法可以在不手动创建目录、复制文件、重命名然后压缩文件的情况下执行此操作?

非常感谢任何帮助。

最佳答案

CodeIgniter 的 Zip 类 apparently不提供任何重命名条目的方法。您可以使用 PHP 的 native Zip 扩展,它允许您在将文件添加到存档时(以及之后)更改名称。

示例来自 PHP Manual

$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->addFile('/path/to/index.txt', 'newname.txt');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}

关于php - Codeigniter - 获取多个文件,重命名它们,然后将其压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8765877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com