2014-05-15 18 views
7

Tôi đang cố gắng để tải lên hình ảnh để AWS s3 với kẹp giấy nhưng tôi nhận được lỗi nàylỗi Kẹp giấy - NotIdentifiedByImageMagickError

Command :: file -b --mime '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1u773ft.jpg' 
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1rep3kt.jpg[0]' 2>/dev/null 
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError> 
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1rep3kt.jpg[0]' 2>/dev/null 
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError> 
Command :: file -b --mime '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-kfejir.jpg' 

Trong mô hình của mình, tôi thiết lập các phong cách

has_attached_file :photo, :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :path => "/:style/:id/:filename", :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/assets/profile/iama.png" 

Khi tôi loại bỏ những phong cách này, mọi thứ đều hoạt động, nhưng tôi thực sự cần chúng.

Tôi đang sử dụng Rails 3.2.16

paperclip (4.1.1) 
     activemodel (>= 3.0.0) 
     activesupport (>= 3.0.0) 
     cocaine (~> 0.5.3) 
     mime-types 

tôi đã được cài đặt ImageMagickrmagick đá quý

Giúp tôi xin vui lòng.

+2

Bạn có chắc đó là jpeg hợp lệ không? –

Trả lời

9

Vấn đề là ImageMagick của tôi không có đại biểu JPEG. Tôi đã phát hiện ra bằng cách sử dụng convert -list format. Vì vậy, tôi đã cài đặt lại ImageMagick bằng MacPort và được cài đặt lại rmagick với Đường dẫn mới đến ImageMagick.

+0

Ngoài việc cài đặt imagemagick qua MacPorts (sau khi thực hiện việc gỡ bỏ cài đặt chương trình truyền hình), tôi cũng phải thiết lập điều này trong development.rb: 'Paperclip.options [: command_path] = '/ opt/local/bin'' – septerr

5

Tôi gặp sự cố tương tự và cập nhật hình ảnh đã giải quyết vấn đề đó. Bạn có thể muốn thử điều đó.

+1

Cập nhật ImageMagick đã giải quyết cho tôi nữa. Đối với Homebrew: 'brew upgrade imagemagick' –

0

tôi đã cùng một vấn đề, và thêm vào cài đặt lại tất cả mọi thứ (ImageMagick, libtool, ghostscript, jpeg), và cuối cùng chạy một vị tướng brew update && brew upgrade , Tôi cũng phải liên kết lại freetype:

brew unlink freetype && brew link freetype 
0

Trong trường hợp của tôi, tôi đã cài đặt ImageMagick bẩn (v7.0) mà tôi chèn được nâng cao bằng tay trước khi sử dụng rpm. Điều này không cho tôi thấy tất cả các phụ thuộc mà ImageMagick cần thiết để Paperclip gặp sự cố khi nó cố gắng sử dụng lệnh chuyển đổi hoặc nhận dạng.

Tôi khuyên người dùng Unix nên cài đặt bằng yum hoặc apt-get để cài đặt tất cả các phụ thuộc một cách chính xác. Cũng khuyên bạn nên cài đặt ghostscript trong trường hợp các lệnh xác định và chuyển đổi không thể được triệu hồi từ kẹp giấy.

cd ImageMagick-7.0.3-0 
make uninstall 
yum install ImageMagick ImageMagick-devel 

Hãy làm theo liên kết này để biết chi tiết cụ thể hơn: How to Install ImageMagick on CentOS & RHEL

Rubygems sử dụng: kẹp giấy (5.1.0) cocaine (0.5.8)

+0

Câu trả lời này rất giống với câu trả lời khác và không thêm bất kỳ thông tin bổ sung nào – Guenther

1

Từ here

OLD syntax was :styles => { :medium => "300x300>" } 
New syntax is style: { :medium => "300x300>" } 
Các vấn đề liên quan