私は、ユーザーから 1 日に約 500 枚の写真がアップロードされるサイトで作業しています。これは非常に高い数値ではありませんが、異なるアップロード間で衝突が発生しています。一部のユーザーは、アップロードした画像の代わりに別の画像のサムネイルが表示されると報告しています。この問題の説明を探していたところ、stackoverflow でいくつかの質問を見つけました。
PHP ファイルのアップロードが部分的なアップロードによって「ハイジャック」される
私が読んだように、問題はファイル tmp 名の衝突に関連しているようです。これを回避するためにupload_tmp_dir
、ログに記録されたユーザー名から計算された整数に基づいて PHP 変数を変更し、衝突の可能性を減らすことを検討していました。ただし、この変数は実行時に変更できません。PHP の実行が開始された時点で、ファイルは既にサーバーにポストされているためです。
この問題を解決する方法がわかりません。今後、毎日のアップロード速度が増加し続ける場合に問題が発生しないように修正したいと考えています。
大量のアップロードを扱うサイトが多いので、どうやってこの衝突問題を回避しているのか気になります。私が作業しているサイトは、PHP 5.2.14 で実行されています。簡単にするために PHP ソリューションを好みますが、アップロード間で競合が発生しないことが保証されている限り、他のスクリプト言語を使用する既存のソリューションにも興味があります。