Php ';ImagickException';带有消息';无法打开文件

Php ';ImagickException';带有消息';无法打开文件,php,pdf,imagick,Php,Pdf,Imagick,带有消息“无法打开文件/data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png”的“ImagickException” 嗨, 当我想从网页中删除PDF文件时,我收到了这条消息,即png文件。只有当PDF的内容包含一些PNG文件时,它才会抛出错误。当我删除所有png文件时,应该是pdf格式的,一切都是正确的。 当我查看php信息时,我看到png是Imagick支持的格式。当我试图在谷歌

带有消息“无法打开文件/data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png”的“ImagickException”

嗨, 当我想从网页中删除PDF文件时,我收到了这条消息,即png文件。只有当PDF的内容包含一些PNG文件时,它才会抛出错误。当我删除所有png文件时,应该是pdf格式的,一切都是正确的。 当我查看php信息时,我看到png是Imagick支持的格式。当我试图在谷歌上找到解决方案时,它返回了许多带有相同错误的站点,但几乎没有解决方案。我找到的唯一解决方案是在服务器上安装另一个库。但如果有的话,我更喜欢另一种解决方案

谢谢你的建议
Tomas

ImageMagick确实可以获取png文件并将其转换为pdf。您确定文件确实位于服务器上的正确位置吗

感觉ImageMagick的inout命令可能不正确。下面的路径看起来很奇怪

data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png ^^^^^ Is this expected? data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png ^^^^^ 这是预期的吗?
如果你告诉我网站,我可以告诉你更多。否则,我会说这是网站php/python脚本中的一个bug。在我看来,这不像是一个ImageMagick问题

ImageMagick确实可以获取png文件并将其转换为pdf。您确定文件确实位于服务器上的正确位置吗

感觉ImageMagick的inout命令可能不正确。下面的路径看起来很奇怪

data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png ^^^^^ Is this expected? data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png ^^^^^ 这是预期的吗?
如果你告诉我网站,我可以告诉你更多。否则,我会说这是网站php/python脚本中的一个bug。在我看来,这不像是一个ImageMagick问题

ImagickException错误消息表明Imagick(PHP类)被'file://'前缀阻塞,该前缀是streamwrapper,是最近添加的PHP。Imagick的文档不清楚stremwrappers的使用,而且最确定的是Imagick不支持这些工具。当它在文件名的第一个字节中没有看到“/”时,它假定文件名是相对的,并将当前目录预先挂起到它,从而创建您在问题中粘贴的怪物字符串

解决方案是修剪发送到Imagick的文件名上的“file://”前缀。文件名应该是绝对的(以/)或相对的

if (strpos('file://', $filename) === 0) {
  $filename = substr($filename, 7);
}

ImagickException错误消息表示Imagick(PHP类)被'file://'前缀阻塞,该前缀是streamwrapper,是最近添加的PHP。Imagick的文档不清楚stremwrappers的使用,而且最确定的是Imagick不支持这些工具。当它在文件名的第一个字节中没有看到“/”时,它假定文件名是相对的,并将当前目录预先挂起到它,从而创建您在问题中粘贴的怪物字符串

解决方案是修剪发送到Imagick的文件名上的“file://”前缀。文件名应该是绝对的(以/)或相对的

if (strpos('file://', $filename) === 0) {
  $filename = substr($filename, 7);
}

它位于Drupal制作的网站上。我不认为这是路径的问题,至少这不是唯一的问题。当我用jpg图像替换png图像时,一切正常。路径不正确,但系统仅在使用PNG文件时生成此路径。所有png和jpg文件都在同一文件夹中。Tomas TeicherI只想在单词“file:”后面添加正确的路径。Tomasit在Drupal制作的网站上。我不认为这是路径的问题,至少这不是唯一的问题。当我用jpg图像替换png图像时,一切正常。路径不正确,但系统仅在使用PNG文件时生成此路径。所有png和jpg文件都在同一文件夹中。Tomas TeicherI只想在单词“file:”后面添加正确的路径。托马斯