【问题标题】:Imagick WriteBlob Failed 1642Imagick WriteBlob 失败 1642
【发布时间】: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 是关于什么的。

任何人都可以对此提出建议吗? 提前谢谢你:)

【问题讨论】:

    标签: php imagick


    【解决方案1】:

    我刚刚遇到了这个错误,并通过仔细检查我试图写入的路径来解决它。确保路径存在并且您具有写入权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-24
      • 2019-05-03
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 2021-05-22
      • 2021-09-13
      • 1970-01-01
      相关资源
      最近更新 更多