编程语言
首页 > 编程语言> > PHP:imagemagick使用convert创建空图像

PHP:imagemagick使用convert创建空图像

作者:互联网

我有一个脚本,应该拍摄一张图像并将其转换为.jpg.这是实现它的代码:

$uploadDir = $_SERVER['DOCUMENT_ROOT'] . "/blogimages/";
$tempFile = ereg_replace("'", "_", basename($_FILES['newsImg']['name']));
$uploadFile = $uploadDir . $tempFile;
move_uploaded_file($_FILES['newsImg']['tmp_name'], $uploadFile);
$newPic = $uploadDir . $blogID . ".jpg";
if(file_exists($newPic)){
unlink($newPic);
}
$convertString = "$IM -strip $uploadFile $newPic";
echo "<!-- $convertString -->";
exec($convertString);

可以看出,我将最后一个字符串放在HTML注释中,以便可以看到正在执行的操作.发生的情况是创建了转换后的图像,但是它是一个0字节的图像.因此,实际上没有数据写入该文件.只是要确保convert实际上正常工作,应该将html注释中的转换字符串复制并粘贴到命令行,然后就可以了.它似乎只在PHP exec中出现问题.对为什么会这样有任何想法吗?

解决方法:

我在想,当您尝试执行命令时,上传文件句柄可能尚未关闭?这样,Imagemagick会看到不完整的文件.

查看代码,我看不到它是怎么发生的,特别是因为文件在周围移动,但是它可以解释行为.

标签:imagemagick,php
来源: https://codeday.me/bug/20191208/2094984.html