2013-05-19 62 views
3

我刚开始玩CarrierWave和我无法得到它的行为。上传与CarrierWave是导致“没有这样的文件”的错误

Rails Casts描述的一切设置完毕后,我收到以下错误:No such file or directory - identify -quiet -ping /tmp/mini_magick20130519-13712-lxhans.jpg 注:我知道了typo in that Rails Cast的那问题不会在我的代码存在。

在我的开发环境中,我安装了libmagickwand-dev软件包,运行了Rails 3.2.9Ruby 1.9.3p194等等。我的Gemfile包含mini_magick

请求被传递到服务器是这样的:

{"utf8"=>"✓", 
"authenticity_token"=>"8ugcdkjOy/5yeodhuTgMXYdrXlcu2xPjxWTvvRwKnWM=", 
"organization"=>{"logo"=>#<ActionDispatch::Http::UploadedFile:0x0000000426c3d0 @original_filename="leather-tshirt-weird-square.jpg", 
@content_type="image/jpeg", 
@headers="Content-Disposition: form-data; name=\"organization[logo]\"; filename=\"leather-tshirt-weird-square.jpg\"\r\nContent-Type: image/jpeg\r\n", 
@tempfile=#<File:/tmp/RackMultipart20130519-13712-1uvmtem>>, 
"name"=>"Test Org", 
"description"=>"blah", 
"timezone"=>"1"}, 
"commit"=>"Create Organization"} 

完全踪迹位于:http://pastebin.com/dW5j9NLt

后开始尝试一些更高级的功能,我简单化的代码下面的这个和我仍然没有运气:

class LogoUploader < CarrierWave::Uploader::Base 

    include CarrierWave::MiniMagick 

    storage :file 

    version :thumb do 
    process :resize_to_limit => [100, 100] 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

编辑:我已经缩小了问题的范围与上传后修改图像。如果我简化代码甚至更远以删除:thumb大小的创建,那么一切正常。思考?

+0

此问题是特定于一个文件还是一种格式?你知道在使用迷你magick时是否创建了临时图像吗? – cgat

回答

0

您是否明确安装了ImageMagick?

我在使用MiniMagick时没有安装ImageMagick时出现同样的错误。据我了解,MiniMagick将操作推迟到mogrify命令,所以如果你不能在命令行上调用mogrify,MiniMagick可能也不能。

在* nix爱好者将能够更放心回答这个问题,但我认为libmagickwand-dev的支持的图形库安装,但实际上并没有安装任何本身。

0

您缺少存储位置。尝试添加此存储下:文件

def store_dir 
    "uploads/logo/#{model.id}" 
    end 
6

没有足够的声望来评论theflyingbrush的答案,但他是绝对正确的。 我有同样的问题,才注意到我实际上一起丢失了imagemagick。因此,在Debian/Ubuntu的

这将这样的伎俩(或 'magick'):

apt-get install imagemagick 

在操作系统中使用yum的包管理器(CentOS的/红帽),你会使用:

yum install ImageMagick 
相关问题