我正在使用CarrierWave为Rails构建文件上传器。我对它的API感到非常高兴,除了我似乎无法动态删除超出限制的文件上传。
我找到this plugin进行验证,但问题是在>完成上传后发生了。在我的情况下,是完全不可接受的,因为任何用户都可以通过上传大文件来关闭网站。
所以,我认为使用一些Rack配置或中间件会限制POST体型的方式。我作为背景在Heroku上主持。
*我知道https://github.com/dwilkie/carrierwave_direct但它并没有解决我的问题,因为我必须首先调整大小并丢弃原始的大图像。
答案 0 :(得分:1)
快速而肮脏的解决方法是使用javascript上传程序并在那里进行验证。如果这还不够好:
如果您将应用程序服务器切换到rainbows,则可以使用名为client_max_body_size的设置。
如果您正在使用其他应用程序服务器,则必须查找等效设置(可能不存在),或者提出某种中间件(可能是也可能不是)取决于您的应用程序服务器)。如果你写一个干净的中间件来做到这一点,我想很多人会感兴趣,因为现在似乎没有一个。
如果你没有使用heroku,你可以使用nginx的client_max_body_size设置,或者等同于apache的任何设置。