2017-05-30 78 views
0

目前我有以下上傳圖片:如何限制Rails file_field助手上的圖片上傳高度和寬度?

<%= file_field "form_x", "image", accept: 'image/png,image/gif,image/jpeg' %> 

在我的方法,我可以用這個

params[:form_x][:image] 

訪問圖像,並通過params[:form_x][:image].size閱讀它訪問圖像的size。但是,我怎樣才能按像素檢查圖像的高度和寬度?我希望能夠通過大小以及高度和寬度來限制圖像。

回答

0

正確的方法是在客戶端進行。你需要一些JavaScript,這裏是一個例子。

您無法從params中獲取圖像寬度和高度。

做服務器的唯一方法是使用一些預處理與客戶端carrierwave for example但更美好限制圖像,而不上傳

HTML

<input id="image" name="img" type="file" /> 
/* */ 
<img src="#" alt="This image is going to load" id="image_on_load" /> 
<p id='image_info_width'> </p> 
<p id='image_info_heigth'> </p> 

JS代碼:

​​

在這個例子中的圖像上傳和你能夠獲得的寬度和高度。

JSFIDDLE

閱讀Rails的 7 Must-Reads about JavaScript with Ruby on Rails

+0

與JS的作品,這怎麼可能只在客戶端?有沒有辦法檢查服務器端? – mangocaptain1

+0

在服務器上執行此操作的唯一方法是使用carrierwave進行一些預處理,但要更好地限制客戶端上的圖像而不上傳。 –

相關問題