【问题标题】:How can i give a unique random name of the pictures when they are being uploaded? [duplicate]上传图片时如何给图片一个唯一的随机名称? [复制]
【发布时间】:2016-09-02 09:44:13
【问题描述】:

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

<?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>";

    }

}

?>

问题是:上传图片时如何给图片一个唯一的随机名称?正如标题所说。

谢谢。

【问题讨论】:

  • 在文件名后添加日期和时间
  • 使用以毫秒为单位的时间戳,或使用上传的用户ID
  • 该放在哪里?抱歉,我不是开发人员,我在互联网上找到了此代码..

标签: php


【解决方案1】:

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

然后记住这些信息:

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

【讨论】:

    【解决方案2】:

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

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

    然后附加文件扩展名:

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

    最后:

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

    【讨论】:

      猜你喜欢
      • 2014-11-24
      • 2015-12-06
      • 2015-08-17
      • 2015-05-02
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多