0

当我尝试在生产模式下上传 png 文件时,为什么会出现此错误?它适用于 jpg 和 gif 文件...

[回形针] 处理时收到错误:#Paperclip::NotIdentifiedByImageMagickError: /tmp/s3,8354,0.png 无法被“识别”命令识别。>

4

2 回答 2

0

你可以使用编译了 PNG(和其他任何东西)的 ImageMagick 版本来解决这个问题。

在我的设置中,我在 MacOSX 上使用 /usr/local/ImageMagick-6.6.1/bin 中的 ImageMagick 二进制下载,并且在 Apache/Passenger 下运行 Rails。我已经将 Paperclip 作为插件安装。

完成这项工作需要 3 个步骤:

1:确保 ImageMagick 在 UNIX 命令行级别工作。这涉及将其添加到您的路径并导出这些环境变量(当然,指向您的 ImageMagick 安装)

MAGICK_HOME=/usr/local/ImageMagick-6.6.1
DYLD_LIBRARY_PATH=/usr/local/ImageMagick-6.6.1/lib

在命令行级别检查标识是否适用于您的图像。

2: 告诉 Paperclip 在哪里可以找到 ImageMagick 可执行文件在 config/environment.rb 中添加这个到文件的底部

Paperclip.options[:command_path] = "/usr/local/ImageMagick-6.6.1/bin"

此时,重新启动Passenger 后,您会看到'identify' 是从Paperclip 中运行的,但无法识别文件……最后一步是……

3: Identify needs those two exported environment variables - and Apache/Passenger (or other web servers probably) does not pass those through by default! In your passenger vhost file add these lines:

  SetEnv MAGICK_HOME /usr/local/ImageMagick-6.6.1
  SetEnv DYLD_LIBRARY_PATH /usr/local/ImageMagick-6.6.1/lib

Restart apache/passenger and it should work

Good Luck!

于 2010-05-10T23:35:51.510 回答
-1

这属于 serverfault imo。

您的 ImageMagick 未使用 PNG 支持进行编译。见这篇文章。我敢肯定谷歌上还有无数。

于 2010-02-22T22:39:18.110 回答