2017-05-30 83 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进行一些预处理,但要更好地限制客户端上的图像而不上传。 –

相关问题