0

情報がほとんどない非常に複雑な問題を抱えています。ユーザーがファイルをアップロードするサイトがあります。それらのファイルは 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 エラーはログに記録されていません。

作業することはほとんどありませんが、どんな助けも大歓迎です!

4

1 に答える 1

0

OKは答えを見つけ、最終的にファイルがたどったルートを追跡することができ、それらはサイトの以前のバージョンから移動していました. この話の教訓は、ホワイトラベルのサイトを扱うときは、サイトのどのバージョンがどこにあるのかを覚えておくことです!

于 2013-07-21T19:44:19.983 に答える