【发布时间】:2021-01-07 23:20:14
【问题描述】:
我正在尝试从 pdf 书籍中获取 png 封面,但我目前陷入困境。 脚本运行良好。然后我更改了虚拟主机并重新导入了所有文件,调整了路径和权限,但现在它无法正常工作。
我得到的错误是:
Uncaught ImagickException: WriteBlob Failed `/var/www/domain/public_html/libreria/covers/architettura dei calcolatori - andrew s-cover.png' @ error/png.c/MagickPNGErrorHandler/1642 in /var/www/domain/public_html/list.php:61 Stack trace: #0 /var/www/domain/public_html/list.php(61): Imagick->writeimage('/var/www/librer...') #1 /var/www/domain/public_html/libreria/index.php(58): include('/var/www/librer...') #2 {main} thrown in /var/www/domain/public_html/list.php on line 61
/var/www/domain/public_html/ 下的所有内容都拥有 apache 所有权和 775 权限。
发生转换的代码sn-p如下:
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
/*$bookArray[] = $row["bookname"];
print_r($bookArray);*/
$book = $row["bookname"];
$path = $host."/libreria/books/".$row["bookname"];
$truepath = basename($path);
$fileArr = explode('.', $book);
$coverName = strtolower(reset($fileArr))."-cover.png";
$fileExt = strtolower(end($fileArr));
//echo "<a href='$truepath'>".$row["bookname"]."</a><br>";
if ($fileExt == "pdf") {
$im = new imagick($book.'[0]');
$im->setImageFormat('png');
$im->resizeImage(150,200,1,0);
$im->writeImage('/var/www/domain/public_html/libreria/covers/'.$coverName);
echo "<a href='$truepath'>"."<img src='covers/".$coverName."'>".$row["bookname"]."</a><br>";
} else {
// echo "<a href='$truepath'>".$row["bookname"]."</a><br>";
}
我查过了,但我无法找出 error/png.c/MagickPNGErrorHandler/1642 是关于什么的。
任何人都可以对此提出建议吗? 提前谢谢你:)
【问题讨论】: