这是解压缩文件的功能。 现在它正在为此工作,如果我有一个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。这该怎么做?
答案 0 :(得分:1)
您可以尝试添加参数-j进行解压缩
exec('unzip ' . DIR_WS_IMAGES_ORDERS.$OrderId.'/'.$zipimagename . ' -j -d ' . $folder . '/');