Php 如果(文件_存在)不使用错误做法?

Php 如果(文件_存在)不使用错误做法?,php,html,file-upload,web,Php,Html,File Upload,Web,我正在使用多个文件的上载脚本。起初,我检查是否存在一个文件,如果存在的话,给它添加一个唯一的ID,然后上传 此后,我一直在考虑各种选项,并决定希望上传的每个文件都有一个唯一ID的原始文件名 这就提出了一个问题,即如果(文件\u存在)检查,则不需要,因此我的问题首先是unique()的可靠性有多高,我现在所做的被认为是不好的做法吗 谢谢 //if(file_exists($newPath)){ $name = pathinfo($fileName, PATHINFO_FILENA

我正在使用多个文件的上载脚本。起初,我检查是否存在一个文件,如果存在的话,给它添加一个唯一的ID,然后上传

此后,我一直在考虑各种选项,并决定希望上传的每个文件都有一个唯一ID的原始文件名

这就提出了一个问题,即如果(文件\u存在)检查,则不需要
,因此我的问题首先是
unique()
的可靠性有多高,我现在所做的被认为是不好的做法吗

谢谢

//if(file_exists($newPath)){

        $name = pathinfo($fileName, PATHINFO_FILENAME);
        $fileName = $name . '__' .uniqid().  '.' .$fileExt;
        $newPath = $upload_dir .$newName;
//  }

我没有使用unique,但手册中说明它是基于当前时间(以微秒为单位)。假设没有人在不同的源上以相同的精确微秒创建文件,这是可靠的

也就是说,对于uniqid(),我将使用prefix参数(如果您在多个地方部署它),并且很可能您会没事

但是,我仍然会进行文件检查。性能影响将完全不可察觉。我甚至可以这样回答您的问题:是的,在使用文件名之前不检查文件是否存在是一种不好的做法,特别是当您正在写入一个包含大量动态创建文件的目录时。根据我的经验,您希望抓住每一个可能会打乱应用程序的事情,这是一个大问题。什么能阻止某人在某个时候抛出一个与即将出现的-uniqid()同名的随机文件?如果答案为“无”,则绝对应执行检查


希望这有帮助

我没有使用unique,但手册中说明它是基于当前时间(以微秒为单位)。假设没有人在不同的源上以相同的精确微秒创建文件,这是可靠的

也就是说,对于uniqid(),我将使用prefix参数(如果您在多个地方部署它),并且很可能您会没事

但是,我仍然会进行文件检查。性能影响将完全不可察觉。我甚至可以这样回答您的问题:是的,在使用文件名之前不检查文件是否存在是一种不好的做法,特别是当您正在写入一个包含大量动态创建文件的目录时。根据我的经验,您希望抓住每一个可能会打乱应用程序的事情,这是一个大问题。什么能阻止某人在某个时候抛出一个与即将出现的-uniqid()同名的随机文件?如果答案为“无”,则绝对应执行检查


希望这有帮助

我将始终检查现有文件的存在性,并确保在代码中目标目录是可写的。我将始终检查现有文件的存在性,并确保在代码中目标目录是可写的。