在Rails中使用Paperclip时如何避免此乘客错误?

时间:2010-12-15 19:20:52

标签: ruby-on-rails paperclip passenger

尝试上传图片时,我经常在Apache error_log中收到此错误。几乎所有其他请求都会发生。如果您在图像上传页面上单击“提交”两次,则第二个请求有效:

,这是非常可靠的
[ pid=53580 thr=0x7fff707b3c20 file=ext/apache2/Hooks.cpp:859 time=2010-12-15 14:13:00.309
]: Unexpected error in mod_passenger: An error occurred while receiving HTTP upload data:     

The timeout specified has expired (70007)
  Backtrace:
     in 'void Hooks::receiveRequestBody(request_rec*, const char*, std::string&)'(Hooks.cpp:1271)

这似乎也发生在attachment_fu上。知道为什么这么多请求挂起,我能做些什么来避免它?

1 个答案:

答案 0 :(得分:2)

您可能会遇到Safari Upload Bug。它过去也咬过我很多次。

显然,修复是在表单提交之前触发ajax请求。我一直在使用下面的jQuery代码片段并且它运行良好。如果你喜欢普通的javascript,上面发布的链接中还有一个非jQuery示例。

<script type="text/javascript">
  $('form').live('submit', function(){
    if (/AppleWebKit|MSIE/.test(navigator.userAgent)){
      $.ajax({url:"/ping/close", async:false});
    }
  });
</script>