6

我有一个网站每天收到 30-40k 张照片上传,我现在看到的问题出现的频率更高。这个问题是这样的:

我们的上传脚本(通过 $_FILES['name']['tmp_name'])接收到一个不是由用户上传的文件(照片),并且大部分时间收到的文件是“部分”上传。

当然,起初我认为这是我的 PHP 代码犯了一个简单的错误,我花了几天时间检查它以确保,但是在对代码进行检查后,我发现通过 HTTP POST 上传到 PHP 收到的文件实际上是错误的文件。所以问题在它到达我的代码之前就已经发生了。脚本接收到的 tmp 文件 (phpxxxx) 有时不正确,就好像它以某种方式被另一个进程覆盖,并且通常被部分上传的文件覆盖。

有没有人见过这样的问题?任何帮助是极大的赞赏。在搜索/询问其他 PHP 开发人员数天后,我将其作为最后的手段

回顾一下:

  • 用户上传照片
  • PHP 脚本接收用户未上传的文件(预代码,通过 /var/tmp 中的 $_FILES)
  • 通常接收到的错误文件是部分上传或损坏的上传
  • 它似乎是随机发生的,而不是一直发生
4

3 回答 3

2

您可以为临时文件尝试不同的名称以避免其被覆盖吗?你能确定新的、不正确的和不完整的文件的来源吗?

这是开发环境吗?是否可能有多个用户同时上传文件?

尝试使用非常小的图像来检查 SchizoDuckie 在文件大小问题上是否正确。

尝试使用不同的导航器来消除公认的远程可能性,即这是本地问题。

检查存储临时文件的目录的权限。

于 2009-03-04T08:04:37.390 回答
2

首先,检查你的 PHP 版本。

其次,检查您的文件上传限制和 php.ini 中的 POST_MAX_SIZE

可能只是有人试图上传一个太大的文件:-)

于 2009-03-04T07:42:59.237 回答
1

PHP 的内置文件处理不支持部分上传。

每次上传后关闭 KeepAlives 和/或发送“连接:关闭”标题。

配置您的网络服务器以发送标头“允许范围:无”。

于 2012-04-25T19:40:17.853 回答