验证Carrierwave上传大小

时间:2013-03-01 12:54:37

标签: html ruby-on-rails-3 file-upload carrierwave

我正在验证Carrierwave上传的大小。它在localhost上工作得很好,但在服务器(Amazon EC2)上,当我尝试上传大于1MB的文件(这是限制)时,我收到以下错误:

POST http://mysubdomain.mysite.com/authors/484.js  /authors/484.js:1
Unsafe JavaScript attempt to access frame with URL data:text/html,chromewebdata from frame with URL http://mysubdomain.mysite.com/. The frame requesting access has a protocol of 'http', the frame being accessed has a protocol of ''. Protocols must match.
 default.js:17

484.js /authors POST (failed) Pending Other 13 B 0 B 1.0 min
data:image/png;base… GET Success image/png  data:text/html,chromewebdata:159 Parser 0 B 2.3 KB 0 ms 0 0 ms

在default.js:17行中,发生错误的地方我看到JQuery代码(缩小)

这就是我验证图片的方式:

  mount_uploader :image_one, AuthorPixUploader
  validates :image_one, 
    :file_size => { 
      :maximum => 1.megabytes.to_i 
    } 

有任何帮助吗?我认为它在失败到达服务器之前失败了。我不知道。

2 个答案:

答案 0 :(得分:0)

答案是在服务器上的nginx.conf中设置client_max_body_size。

我将此行添加到服务器块:

client_max_body_size 10M;

答案 1 :(得分:0)

我知道你已经找到了问题的解决方案,但我最近有一个类似的问题,并且遇到了关于如何在服务器端正确验证文件大小的官方CarrierWave教程......

https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Validate-attachment-file-size