2017-05-30 27 views
1

我目前有以下用於上傳圖像,但我也想添加一個限制,防止用戶上傳任何小於50px的文件在height。這可能嗎?Rails file_field大小限制

file_field "form", "image", accept: 'image/png,image/gif,image/jpeg' 

回答

1

試試這個,也許這將幫助你:Reference

validate :validate_image_size 

def validate_image_size 
    image = MiniMagick::Image.open(picture.path) 
    unless image[:height] < 50 
    errors.add :image, "should be 50px minimum!" 
    end 
end 

這會爲你工作,如果你使用MiniMagick

+0

當我試圖訪問高度時,它凍結了我的終端 – stackjlei

+0

我給你提供了更多的理解參考,使用它的好友 –

+0

將你的代碼發佈到評論中。 –

1

這可能嗎?

是的,這是可能的,但你需要一些JavaScript來做到這一點在客戶端,這是我的例子。將該html輸入更改爲rails helper。

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的與JS的作品 7 Must-Reads about JavaScript with Ruby on Rails