解压缩文件,直到我得到JPG,JPEG / PNG

时间:2014-12-08 11:58:01

标签: php file-upload unzip

这是解压缩文件的功能。 现在它正在为此工作,如果我有一个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 个答案:

答案 0 :(得分:1)

您可以尝试添加参数-j进行解压缩

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