2010-10-30 60 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