4

我正在使用 swfupload 将文件上传到 nginx。它适用于我和我们 99% 的用户。然而,对于几个用户,它在上传过程中以某种方式失败。它打开了一个连接,但似乎在它完成之前关闭了它 - nginx 在其访问日志中报告了 499 状态,即 NGX_HTTP_CLIENT_CLOSED_REQUEST。

我设法联系了其中一位用户以获取更多信息。他们在 XP 和 Firefox 3.5.7 上运行 Flash 10.0.42。

有没有人见过这样的事情?关于修复它/我如何进一步调查的任何建议?

-乔纳森

4

3 回答 3

1

如果这里没有任何具体内容,这里列出了我会问那些不适合的用户的事情。

  • 你有什么样的互联网连接?你在(公司)防火墙后面吗?

  • 您尝试上传哪种文件(文件类型和大小)?该文件存储在什么介质上?(例如从 CD 上传时排除读取错误)

  • 操作系统版本、浏览器版本、Flash 版本、个人防火墙和/或安装的防病毒软件(检查模式)

  • 它在第二次尝试时有效吗?

于 2010-01-25T10:24:27.100 回答
1

在以下情况下会发生 499 错误:

  • 用户成功将所有数据(包括上传文件)发送到服务器
  • 用户在收到响应前取消请求(即通过刷新页面,当前所有请求都将被取消)
  • 服务器(nginx)获取请求并成功处理它(保存上传的文件)。下划线服务器返回 200 响应。
  • Nginx 从下划线服务器获取响应,但是当想要向客户端发送响应(对于 POST 请求)时,客户端已经关闭连接并且消失了!因此服务器无法将响应传递给客户端。

因此,从服务器的角度来看,499 错误是成功上传!但是因为客户端没有收到任何响应,nginx 将其标记为 499 错误。

于 2012-04-02T03:52:30.453 回答
0

A few possibilities,

  • The user refreshed the page before the upload was complete.

  • The user's internet connection cut-out or hiccuped during the upload.

  • If you're using PHP ( im guessing ) check the following settings in your php.ini.

max_execution_time

If the script takes too long to execute, the server will stop it based on this setting.

max_file_uploads

If the user tries to upload more files than this setting at once, then that might be the cause.

upload_max_filesize

If any of the files are larger than this setting, the file wont be uploaded. This can be handled before it hits the server on the client side with:

Sorry, but without more specific information, I can't narrow it down any further.

If it's only affecting 1% of your users, that's acceptable in my opinion ;) Personally I wouldn't waste time fixing a bug for the 1% unless its the client.

于 2010-01-31T15:15:35.733 回答