在我的Rails應用程序中,我有一個允許用戶上載圖像的表單。我的應用程序應該使用以下控制器方法調整圖像大小。 (POST這種方法,params[:file]
包含已上傳的ActionDispatch::Http::UploadedFile
:無法使用RMagick打開上傳的圖像文件
def resize_and_store
file = params[:file]
# resize image
Magick::Image.read(file.tempfile).first
newimg = image.resize(100,100)
#etc... Store newimg
end
我收到以下錯誤,在這行Image.read
:
Magick::ImageMagickError (no decode delegate for this image format `0xb9f6052c>' @ error/constitute.c/ReadImage/544):
測試此與上傳的PNG文件時,它似乎RMagick並沒有拿起該臨時文件是PNG文件。上面的代碼確實工作,如果我讀本地存儲的PNG文件,所以它不能是我錯過了PNG解碼器。解決這個問題,爲什麼會發生這種情況?
你確定這是'params [:file]'裏面的內容嗎?我只對實際上傳的文件進行過操作,例如模型屬性。 –
我相信你需要更新問題標題:將'Can'改爲'Can't';) – marvelousNinja
糟糕!調試器說這個類型是#,它帶有一個'image/png'內容類型。這個相同的代碼對你有用嗎? –
Maarten