Codeigniter и загрузка zip-файлов
-
19-09-2019 - |
Вопрос
В настоящее время я создаю серверную часть сайта, используя платформу codeigniter, я столкнулся с небольшой проблемой, мне нужен способ разрешить пользователю загружать архивированную папку с изображениями, после заполнения формы архивированная папка должна быть разархивирована, а файлы должны быть перемещены в папку в другом месте на сервере, создать уменьшенную версию каждого изображения и добавить имя файла в базу данных, а также, если изображения предназначены для типа контента, который еще не существует, тогда мне нужно создать каталог с этим типом контента.
Я знаю, что в Codeigniter есть класс загрузки, но я не уверен, что у него есть возможности делать то, что мне нужно, я действительно мог бы посоветовать, пожалуйста?
Спасибо
Решение
Вы не сможете выполнить какую-либо проверку изображения или файла с помощью класса Upload.Класс upload позволит вам принять файл и проверить, что это ZIP-файл, но это все, на что он способен.
Оттуда, распаковать молнию файл и просто выполните несколько простых действий PHP над файлами, чтобы проверить, что они имеют правильный тип, и создать свои папки и т.д.Я бы поместил эту логику в новую библиотеку, чтобы она была правильно разделена.
Другие советы
Как отметил Ян, это широкий вопрос (например, 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/');