【发布时间】:2014-06-11 18:27:23
【问题描述】:
我正在使用以下代码上传一些文件,但是由于名称相似,因此有些文件被替换了。我只是想知道如何更改名称,我试过了,但我发现自己弄乱了整个代码。
PHP
if (!empty($_FILES["ambum_art"])) {
$myFile = $_FILES["ambum_art"];
if ($myFile["error"] !== UPLOAD_ERR_OK) {
echo "<p>An error occurred.</p>";
exit;
}
$name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);
$i = 0;
$parts = pathinfo($name);
while (file_exists(UPLOAD_DIR . $name)) {
$i++;
$name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
}
$success = move_uploaded_file($myFile["tmp_name"],UPLOAD_DIR . '/'.$name);
if (!$success) {
echo "<p>Unable to save file.</p>";
exit;
} else {
$Dir = UPLOAD_DIR .'/'. $_FILES["ambum_art"]["name"];
}
chmod(UPLOAD_DIR .'/'. $name, 0644);
unset($_SESSION['video']);
$_SESSION['album_art'] = $Dir;
$ambum_art_result = array();
$ambum_art_result['content'] = $Dir;
echo json_encode($ambum_art_result);
}
我希望每个文件都有从这个变量中生成的东西。
$rand_name = microtime().microtime().time().microtime();
谢谢。
我不想首先检查文件是否存在,因为这会添加到进程中,我只想使用 time() 和一些随机字符串。只是获得一个唯一的名称。
【问题讨论】:
-
使用组合
time().mt_rand() -
我在哪里把它放在代码上?
-
赞这个
$Dir = UPLOAD_DIR .'/'.time().mt_rand().$_FILES["ambum_art"]["name"];
标签: php file random upload timestamp