Распакуйте файл, пока я не получу JPG, JPEG / PNG

Это моя функция, чтобы распаковать файлы.
Теперь это работает для этого, если у меня есть ZIP-файл содержит только изображения и
это не работает, если у меня есть заархивированный файл с папкой, содержащей изображения

public function uploadZipImages($Orderpid, $OrderId)
{
$valid_image_type = array('jpg,png');
$valid_zip_type   = array('zip');
$folder = DIR_WS_IMAGES_ORDERS . $OrderId . '/block_images';

(isset($_POST['clearImages']) && ($_POST['clearImages'] == 1 || $_POST['clearImages'] == '1')) ? (exec('rm -rf '.$folder.'/*')) : (true);
(!is_dir($folder)) ? (mkdir($folder, 0777)) : (true);

foreach ($_POST['bulk_images'] as $block)
{
$total_count     = count($block);
$zipimagename    = $block;
$extension= substr(strrchr($zipimagename,'.'),1);
for($i = 0; $i < $total_count; $i++)
{
$str_filename = preg_replace("[^A-Za-z0-9.-]", "_", $zipimagename);
$file_name = $folder . '/' . $str_filename;
move_uploaded_file(DIR_WS_IMAGES_ORDERS.$OrderId.'/'.$zipimagename, $file_name);
if (in_array($extension, $valid_image_type) || in_array($extension, $valid_zip_type))
{
if (in_array($extension, $valid_zip_type))
{
exec('unzip ' . DIR_WS_IMAGES_ORDERS.$OrderId.'/'.$zipimagename . ' -d ' . $folder . '/');
unlink($file_name);

}
}
}
}
}

Я знаю, что должен измениться где-то здесь exec('unzip ' . DIR_WS_IMAGES_ORDERS.$OrderId.'/'.$zipimagename . ' -d ' . $folder . '/');
Проверяя, как распаковать, пока я не нашел jp, jpeg / png. Как это сделать?

1

Решение

Вы можете попробовать добавить параметр -j для распаковки

exec('unzip ' . DIR_WS_IMAGES_ORDERS.$OrderId.'/'.$zipimagename . ' -j -d ' . $folder . '/');
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]