Rails Paperclip和Passenger“未识别'identify'命令”。

42

当我上传照片时,我的模型未通过验证,即使没有任何验证,我也会收到以下错误消息:

/tmp/stream20100103-13830-ywmerx-0 is not recognized by the 'identify' command. and     
/tmp/stream20100103-13830-ywmerx-0 is not recognized by the 'identify' command.

我相信这与ImageMagick无关,因为我已经从上传过程中删除了任何图像处理,并尝试上传了不同的MIME类型,例如.txt文件等。

此外,我发现可能有用的东西。一篇博客文章声称在我的环境中(在这种情况下是development.rb)放置以下内容可能起作用。

Paperclip.options[:command_path] = "/opt/local/bin"

重新安装ImageMagick...只是为了看看是否能解决任何问题。 - JP Silvashy
1
这与ImageMagick有关,但您能否在您的模型中包含paperclip语句? command_path选项需要指向安装了identify的位置。从命令行可以使用which identify来确定此位置。 - Ryan McGeary
嗯,你说得对Ryan(又一次),如果你想回答问题,你会得到一个大的绿色勾选标记。 - JP Silvashy
14个回答

0

如果你是一位Mac用户,而且自从更新操作系统到10.8版本后出现了问题,那么可能是一个X11的问题,可以参考这里的解决方案http://support.apple.com/kb/HT5293

identify ~/path/to/image

尽管已经尝试了以上所有修复方法,对我来说仍然无效。 我从http://xquartz.macosforge.org/landing/安装了XQuartz,现在又可以正常工作了。

希望能够帮助其他人解决类似问题...


0

我在使用OSX + MAMP + Passenger + Paperclip时遇到了这个问题,经过设置command_path并确保通过brew正确安装了imagemagick,将passenger的临时和上传目录设置为可写入的内容,它仍然无法正常工作!

解决方法是编辑/Applications/MAMP/Library/bin/envvars中的MAMP envvars文件,并注释掉export DYLD_LIBRARY_PATH行。

也就是说,更改该行的内容:

export DYLD_LIBRARY_PATH

# export DYLD_LIBRARY_PATH

然后重新启动MAMP,当您的图像正确上传/调整大小时,感受到兴奋。


0

这也发生在我身上,我尝试了上面提到的所有方法。我只是更改了纸片版本,然后一切正常了。


0

只是想说,您也可以因为其含义而收到此错误消息。

在我的情况下,文件大小为0字节,因为我在从Zip中编写它并将此资源传递给Paperclip后忘记了刷新它。

在阅读本主题的其他答案之前,检查您是否可以使用首选查看器打开文件可能很有趣 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接