エントリの重複を避けるために、ファイルアップロード用に一意のファイル名を生成するためのベストプラクティスを提案できる人はいますか?
前もって感謝します。
エントリの重複を避けるために、ファイルアップロード用に一意のファイル名を生成するためのベストプラクティスを提案できる人はいますか?
前もって感謝します。
私は通常、ファイル名にuniqid()関数を使用してUIDを作成するか、ファイルをアップロードするユーザー名の名前でフォルダーを作成し、元のファイル名を残します。最初のものの欠点は、ユーザーに表示するために元のファイル名をどこかに保存する必要があることです。
ファイルがアップロードされたときのUNIXタイムスタンプを使用できます。複数のアップロードが同時に発生することが予想される場合は、一意のユーザーIDまたは元のファイル名の一部を追加できます。
このようなもの:
$filename = md5(date('Y-m-d H:i:s:u'));
MD5ハッシュは一意であることが保証されていないため、file_exists($ filename)を使用して衝突をチェックすることをお勧めします。その場合は、上記を再実行してください。
ファイルを作成したい場合は、と、またはtempnam
この質問があります。tmpfile
$username。$timestamp。$randomNumber
または、アップロードされた日時と誰がアップロードしたかについての詳細を他の人に知られたくない場合は、これをハッシュすることができます