getMessage(), E_USER_WARNING); exit; } } header('Content-type: '.mime_content_type($target)); readfile($target); exit; function mkthumb($source, $target, $width, $height) { @mkdir(dirname($target), 0777, TRUE); return mkthumb_exec($source, $target, $width, $height); } function mkthumb_exec($source, $target, $width, $height) { $cmd = implode(' ', array_map('escapeshellarg', [ 'convert', '-trim', '-resize', "${width}x${height}", '-quality', '90%', $source, $target ])); $return = shell_exec("$cmd 2>&1"); if ($return) { throw new Exception($return); } }