codeigniter上传encrypt_name唯一性

Moh*_*aji 5 file-io codeigniter file-upload overwrite

1. codeigniter的上传库的encrypt_name选项是否唯一?

我知道这个overwrite选项很重要.如果overwriteTRUE,它将覆盖,如果是FALSE,它将通过在名称末尾添加一个数字来重命名该文件.

问题是:它会重新生成加密的名称,直到找到唯一的名称,即使overwriteTRUE吗?我问这个是因为很明显,当我们想要加密名称时,我们当然不想覆盖.

通过添加一些数字来重命名的问题是它会破坏文件名的大小.许多文件将有32个字符文件名,有些可能有33个字符文件名会破坏协调.

2.这有可能产生一个永远重复的结果吗?

小智 6

由于Codeigniter md5(uniqid(mt_rand()))用于生成加密文件名,我猜你会在PHP docs中找到你的答案.

简短的回答(对于2.)将是:也许,但可能不是.

并回答您的第一个问题:不,CI不会生成新的加密文件名(如果已存在).它在名称的末尾添加了一个数字.

稍微浏览/libraries/Upload.php第415行的源代码就可以了.