PHP如果存在相同的名称,则按时间顺序重命名上载

时间:2013-03-14 17:08:44

标签: php

我目前正在运行此脚本以从我的智能手机应用程序上传录制文件,效果很好。但是有些用户没有完全填写他们的信息,而且上传的内容是“null”,我希望他们“如果上传名称= null,那么”按时间顺序重命名:null1,null2,null3等

但是如果他们当前没有文件夹中具有匹配名称的文件,则保留上传的名称。例如,可能有约翰史密斯和约翰史密斯1,但没有简史密斯,所以只需保留名称。这是我的代码

<?php
print_r($_FILES);
move_uploaded_file($_FILES["file"]["tmp_name"], "mp3/".$_FILES["file"]["name"]);
?>

1 个答案:

答案 0 :(得分:0)

这应该做你想要的:

// Get the file name as an array
$file_name = explode('.', 'mp3/' . $_FILES['file']['name']);

// Get the extension
$extension = array_pop($file_name);

// Get the file name as a string
$file_name = implode('.', $file_name);

// Set the initial suffix
$i = 0;

// Get the valid path
while (is_file($path = $file_name . ($i ?: '') . '.' . $extension))
{
  ++$i;
}

// Throw an exception if the file could not be moved
if (!move_uploaded_file($_FILES['file']['tmp_name'], $path))
{
  throw new Exception('There was an error uploading the file.');
}