我在 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
已删除的情况下运行它,这使我可以上传原始图像文件。不过,我真的很想要我的网站的缩略图。
那么,我错过了什么使它无法正常工作?