7

我有一个表格(Rails 3.2.8,Paperclip 3.1.4),带有两个回形针附件,用于具有两个 has_attached_files 的模型。一个是图像,另一个是通用文件,通常是 .zip 文件。

只要我不尝试上传 .zip 文件,一切正常。上传任何大小的 .zip 文件(原始文件为 80 MB,但尝试 3 MB 以查看是否存在大小问题)会导致表单 POST 而不是 PUT,并且 Rails 会引发路由错误。

表单方法是 POST,但将 Rails 的隐藏 _method 值设置为“put”,它工作正常,并且在我不尝试上传 .zip 文件时会导致 PUT。

该表单确实正确设置了 enctype 'multipart' 位。

知道是什么原因造成的吗?

4

1 回答 1

1

文件听起来很大。仔细检查实际参数是否已进入请求。根据文件的大小,我也可以在本地获取它。

我看到的效果是 rails 基本上没有参数。由于 PUT 实际上是一个带有隐藏元素的帖子,因此 rails 只会看到 POST,因为 params 被删除了。

我实际上不确定是什么原因造成的。我想可能是本地的webserver,所以你可能需要配置nginx什么的。我从来没有在 heroku 或任何东西上发生过这种情况,但如果文件足够大,总是在本地发生。

另请注意,webrick 的请求有效负载限制非常小。所以不要用那个。使用“薄”,因为它非常容易替代。

于 2013-07-08T10:32:44.653 回答