我试着把png的封面从pdf的书里拿出来,但是我现在卡住了。脚本运行得很好。然后我更改了虚拟主机,并重新导入了所有文件,调整了路径和权限,但现在它不工作了。
我得到的错误是:
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权限。
发生转换的代码片段如下:
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>";
}
我检查了一下,但是我找不到错误/png.c/MagickPNGErrorHandler/1642是关于什么的。
有人能对此提出建议吗?提前感谢您:)
发布于 2021-05-23 06:14:09
我只是遇到了这个错误,并通过仔细检查我试图写入的路径来解决它。确保该路径存在,并且您具有写访问权限。
https://stackoverflow.com/questions/65621322
复制相似问题