如何在上传图片时给出一个独特的随机名称?

时间:2016-09-02 09:44:13

标签: php

这是我的代码: 我需要在照片上传时给出一个随机的名字,但我不知道如何,请帮忙。

<?php



if (isset($_POST['submit'])) {

    $validextensions = array("jpeg", "jpg", "png");

    $temporary = explode(".", $_FILES["file"]["name"]);

    $file_extension = end($temporary);



    if ((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")

            ) && ($_FILES["file"]["size"] < 1000000000000000000000000000000000000000000000000000000)//Approx. 100kb files can be uploaded.

            && in_array($file_extension, $validextensions)) {



        if ($_FILES["file"]["error"] > 0) {

            echo "Return Code: " . $_FILES["file"]["error"] . "<br/><br/>";

        } else {



            echo "<span>Vasa Slika je uspesno prikacena...!!</span><br/>";

            echo "<br/><b>Ime od vasa slika:</b> " . $_FILES["file"]["name"] . "<br>";

            echo "<b>Tip:</b> " . $_FILES["file"]["type"] . "<br>";

            echo "<b>Velicina:</b> " . ($_FILES["file"]["size"] / 1024) . " kB<br>";






            if (file_exists("upload/" . $_FILES["file"]["name"])) {

                echo $_FILES["file"]["name"] . " <b>vec postoji.</b> ";

            } else {

                move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

                $imgFullpath = "http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["REQUEST_URI"].'?').'/'. "upload/" . $_FILES["file"]["name"];

                echo "<b>Link ka vasu sliku:</b><a href = '$imgFullpath' target='_blank'> " .$imgFullpath.'<a>';



            }



        }

    } else {

        echo "<span>***Niste odabrali sliku !!!***<span>";

    }

}

?>

问题是:如何在上传图片时给出一个独特的随机名称?正如小说所说的那样。

感谢。

2 个答案:

答案 0 :(得分:0)

首先,请阅读:https://stackoverflow.com/a/2562877/2266583

然后记住这些信息:

echo md5($path_parts['filename'] . time()) . $path_parts['extension']

答案 1 :(得分:0)

你应该首先创建一个随机字符:

$random_chars = sha1(time().uniqid());

然后附加文件扩展名:

$new_filename = $random_chars.'.'.$your_extention;

最后:

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $new_filename);