我在Windows 7计算机上使用Paperclip 3.3.0运行Rails 3.2.8。当我尝试上传名为“2012-10-26_17.49.13.png”的图片时出现以下错误:Image There was an error processing the thumbnail for 2012-10-26_17.49.1320121027-1196-l5ejgs
文件名可能不重要,但我想指出,我发现与此相关的大部分问题都是error processing the thumbnail for stream
。我的错误没有“流”。每当我尝试上传时,文件名的结尾都会随机变化(Paperclip我会假设避免碰撞)。
图像字段在模型中设置如下:
has_attached_file :image, :path => ":rails_root/public/images/:hash_:style.:extension", :url => "/images/:hash_:style.:extension", :hash_secret => "sometext", :default_url => "", :styles => { :thumb => "100x100#" }
validates_attachment_content_type :image, :content_type => ['image/jpeg','image/jpg','image/pjpeg','image/png','image/x-png','image/gif']
has_attached_file
目前正在使用:hash
,但我也尝试使用:basefilename
或其他任何内容,但这并未影响结果。 :thumb
样式也已尝试为"100x100>"
。
_form.html.erb
中的字段如下:
<div class="field">
<%= f.label :image %><br />
<%= f.file_field :image %>
</div>
控制器在:image
方面没有什么特别之处,因为Paperclip似乎为我照顾一切。至少,这是我从查看示例代码中收集到的内容。
我认为这可能是ImageMagick的一个问题。我发现的这个错误的一些解决方案涉及ImageMagick的安装位置。我把我的C:/ ImageMagick6,更新了我的系统路径,并将以下几行添加到development.rb:
Paperclip.options[:command_path] = "C:/ImageMagick6"
Paperclip.options[:swallow_stderr] = false
Paperclip.options[:whiny_thumbnails] = true
我不完全确定后两者是否需要,但我看到了他们的建议。没有注意到包含它们的任何变化。如果我打开命令提示符,我可以访问ImageMagick命令,因此路径应该是正确的。
我还尝试在删除:styles
的情况下运行此操作,这样我就可以上传原始图片文件了。不过,我真的想要我网站的缩略图。
那么,我错过了什么让它无法正常工作?
答案 0 :(得分:1)
尽管已将Paperclip.options[:command_path] = 'C:/progra~2/imagem~1.0-q'
添加到我的config / environments / development.rb文件中,但我必须在C:/progra~2/imagem~1.0-q
之前在环境路径中添加%SystemRoot%\system32
。
我通过几次来回修改环境路径来证实这一点。
答案 1 :(得分:0)
要使用Paperclip,您需要安装ImageMagick库。
ImageMagick提供Paperclip所需的两个可执行文件:identify
识别图像格式,convert
处理原始图像并生成所需格式
现在,Windows默认情况下不会出现ImageMagick,因此您需要手动安装它。
稍后,您需要告诉Paperclip它将在哪里找到ImageMagick可执行文件,这些文件都记录在Paperclip README
中请注意,如果您未将Paperclip.options[:command_path]
设置为安装了ImageMagick的PATH,Paperclip将错误地尝试使用Windows“convert
可执行文件,这是一个文件系统转换实用程序,并不意味着过程图像。
我认为这是您目前收到的关于生成缩略图的错误。
希望有所帮助。
答案 2 :(得分:0)
您可以尝试直接通过命令行使用ImageMagick来操作图像。至少,这应该确认您的ImageMagick安装是否存在问题。