情報がほとんどない非常に複雑な問題を抱えています。ユーザーがファイルをアップロードするサイトがあります。それらのファイルは base 64 でエンコードされ、別のサイトに送信されます。2 番目のサイトはファイルを保存し、そのファイルのデータベース レコードを追加します。このプロセスのどこかで、約 8 分の 1 のファイルがすべてのコンテンツを失っています。
このシステムは約 5 か月稼働しており、このエラーは先月サーバーの移動に伴って発生したものです。拡張子やソースなど、ファイルに共通するものは何もなく、時間の経過とともに重要なものはなく、php エラーはログに記録されていません。失敗したファイルのコピーを取得しました。それらをアップロードしようとすると、正常に動作します。
最初のサイトは空白のファイルを通過させないため、2 番目のサイトで発生している必要があります。おそらく、これを引き起こしている 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 エラーはログに記録されていません。
作業することはほとんどありませんが、どんな助けも大歓迎です!