给上传的图像一个随机名称?

时间:2015-11-21 22:50:02

标签: php

如何为图像提供随机名称,而不是在上传图像时使用图像的名称?

if(file_exists('folder/' . $_FILES['file']['name'])){
      echo "Change ImageName<br> ";

    } 
    else {
      move_uploaded_file($_FILES['file']['tmp_name'],'folder/' . $_FILES['file']['name']);
    $q = mysqli_query($con, "UPDATE users SET date=now(), image = '".$_FILES['file']['name']."' WHERE username= '$id'");

    }

2 个答案:

答案 0 :(得分:3)

如果您不关心原始名称,可以使用uniqid生成唯一的文件名。

$newFileName = uniqid('uploaded-', true) 
    . '.' . strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
move_uploaded_file($_FILES['file']['tmp_name'], 'folder/' . $newFileName);
$q = mysqli_query($con, "UPDATE users SET date=now(), image = '".$newFileName."' WHERE username= '$id'");

答案 1 :(得分:1)

请参阅StackOverflow Generating (pseudo)random alpha-numeric strings以帮助您创建随机名称,然后将$_FILES['file']['name']替换为新生成的名称加上'.jpg';

Daniel对我的回答似乎很顺利。