遇到了一个非常复杂的问题,几乎没有什么信息。好的,我有一个人们可以将文件上传到的站点,然后这些文件经过 base 64 编码并发送到另一个站点。第二个站点保存文件,然后为该文件添加数据库记录。在这个过程中的某个地方,大约八分之一的文件丢失了所有内容。
这个系统已经上线大约5个月了,这个错误是上个月才出现的,恰逢服务器搬家。这些文件没有任何共同之处,例如扩展名或源代码,随着时间的推移没有任何意义,并且没有记录任何 php 错误。我有失败文件的副本,当我尝试上传它们时,它们工作正常。
第一个站点不会让空白文件通过,所以它必须发生在第二个站点中,我相信也许我错过了导致这种情况的 php 配置选项。只是为了彻底起见,这里是保存文件的代码:
$fileName = time() . ($id->count + 1) . '-' . $this->post['jobId'] . $this->post['fileType'];
file_put_contents(DIR_TMP . "cvs" . DS . $fileName, base64_decode($this->post['cv']), FILE_APPEND);
有问题的服务器是 Linux CentOS 6 64 位。
所以总而言之,这个问题是在服务器移动后开始的,只影响大约 1/8 的文件,并且有问题的文件不会一直失败。文件扩展名或时间没有模式(我没有看到同时处理多个文件,所以我不认为服务器超载)并且没有记录 php 错误。
任何帮助将不胜感激,尽管工作很少!