2010-10-30 36 views
0

我做了一小段代码上传文件,然后用imagemagik调整大小。我正在使用system(“command”)函数调用imagemagik来调整图像大小,但输出是大小为0字节的文件。任何想法可能会出错?导轨,图片上传和imagemagik调整

回答

2

我会建议使用RMagick,它是imagemagick周围的红宝石包装。这将有助于保持事物更加类似ruby,并且通常对于知道有用。

谷歌将帮助(或计算器的RMagick),但步骤是一样的东西(我假设的Rails 3):

在application.config:

gem 'rmagick' 

然后,在你的控制器:

require 'RMagick' 

def create 
    @upload_io = params[:image_field] 
    @filename = @upload_io.original_filename 
    @filepath = Rails.root.join('public', 'images', @filename) 
    File.open(@filepath) do |file| 
    file.write(image_io.read) 
    end 

    @original = Magick::Image.read(@filepath) 

    @thumbnail = @original.resize_to_fit 75 75 
    @thumbnail.write(Rails.root.join('public', 'images', 'sm_' + filename) 
end 

如果你不是RMagick那么热衷,我也建议确保您调整其大小(不原来存在吗?),并确保您的路径是之前正在保存文件一致,并且您确实在文件系统上找到了正确的位置。

+0

嗨...我看着rmagick选项,但是因为它表示不再维护它而投了票... – Amit 2010-10-30 11:03:42

+0

同样就文件路径而言,我确信路径没问题,因为有一个新的文件的大小为0字节,所以我很确定命令在正确的文件上运行。我怀疑它是导致prblems的rails实例的用户,但即使在将文件夹设置为777后,我仍然得到相同的错误 – Amit 2010-10-30 11:05:36

+0

我正在使用它,并取得了巨大成功。我并不知道它没有被维护,但它的功能很强大。我仍然会说与RMagick一起去,然后只有在需要时才下拉命令。但是,由你决定:-) – Travis 2010-10-30 11:30:12