2013-07-26 10 views
5

1. codeigniterのアップロードライブラリのencrypt_nameオプションが一意であることをチェックしますか?codeigniterアップロードencrypt_name一意性

私はoverwriteオプションが重要であることを知っています。 overwriteTRUEの場合は上書きし、FALSEの場合は名前の末尾に数字を追加してファイルの名前を変更します。

質問です:それはoverwriteTRUE場合でも、一意の名前を見つけるまで暗号化された名前を再生しでしょうか?暗号化された名前が必要な場合は、もちろん上書きしたくないということは明らかです。

いくつかの数字を追加して名前を変更すると、ファイル名のサイズが壊れるという問題があります。多くのファイルには32文字のファイル名があり、一部のファイルには33文字のファイル名が付いていて、コーディネーションが壊れていることがあります。

2.これまでに重複した結果を生成することは可能ですか?

+0

'overwrite'が' true'に設定されていると、エンコードされた名前が既存のファイルと一致すると、それが前のファイルに置き換えられます。そうでなければ、現在のアップロードされたファイルの名前が変更されます。 –

+0

申し訳ありませんが、申し訳ありませんが、もし私が 'FALSE'を上書きしてしまったとしても。 qを編集しました。ご理解いただきありがとうございます。 –

+0

はい、既にアップロードされているファイルと一致しても、アップロードできないファイルの名前が変更されます。 –

答えて

6

Codeigniterはmd5(uniqid(mt_rand()))を使用して暗号化されたファイル名を生成しているので、私はPHP docs for uniquidで答えを見つけると思います。

短い回答(2.の場合)は、おそらく、おそらくそうではありません。

あなたの最初の質問に答えてください:いいえ、CIは新しい暗号化されたファイル名を生成しません。名前の末尾に数字を追加します。

/libraries/Upload.phpの415行目のソースコードを簡単に見てみましょう。