2012-04-28 11 views
1

ユーザーが登録プロセスの一環として画像をアップロードするフォームがあります。しかし、私の問題は、同じ名前のイメージの名前を保存するユーザーが、プロフィール写真を表示するときに問題が発生する可能性があることです。どのようにファイルシステムにアップロードする時点でピクチャ名を一意にすることができますか。ファイルシステムへのアップロード時点で同じ画像名を避けるにはどうすればいいですか?

ありがとう。

+3

ファイル名を .jpgに変更しましたか? – BurninLeo

+0

phpの関数[tmpfile()](http://php.net/manual/en/function.tmpfile.php)関数を参照してください。 すべてのファイルは、一時ファイル名でアップロードする必要があります。それで、あなたはそれで何かをします。この場合、ユーザーが登録したら、ファイルの名前を変更します。 – Ami

答えて

1

これは

$t = uniqid(); 
$filename='user-'.$t; 
echo $filename; // user-1335601088 (always a different name) 
を助けている場合
+1

これはうまくいくとは思わない - 'date( 's')'は常に0-59の間の値を返すので、60の異なる潜在的な潜在的な値があります。 –

+0

ありがとう、これはokですuniqid ) '、SOから学んだだけですか? –

+1

私は 'mktime(uniqid())'があなたを返すかどうか分かりません。どうして 'rand()'や 'uniqid()'を単独で使ってみませんか? –

4

私は、次のスキームのいずれかを使用することをお勧めします:

  • ファイル名、ユーザー名/ユーザーID
  • の機能は、ファイル名のランダムな値
  • は、ファイル名にファイルの機能を作る作る作りますコンテンツ(例えばMD5チェックサム)
+0

私がuserIDオプションを使用する場合は、ユーザーを登録した後にアップロードがステップします。または、これをすべて1つのプロセスとして実行するより良い方法がありますか? –

+0

登録プロセスを完了しないようにユーザーがアップロードするイメージを処理する方法は、難しい問題です。何らかのクリーンアップをしたり、提案したようにプロセスを変更したり、登録した後でのみアップロードを許可したりする必要があります。 –

関連する問題