PHP重命名上传的文件(图片)

时间:2015-03-16 20:21:21

标签: php html

我想重命名上传的文件。名称应该是随机唯一编号。

这是我的上传脚本:



<?php
    if(isset($_POST["submit"])){
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);

        if(!($check == false)){
            if(file_exists($target_file)){
                $meldung = "Der Bildname exestiert bereits.";
            }
            if($_FILES["fileToUpload"]["size"] > 5242880){ /*Bytes*/
                $meldung = $meldung . "Das Bild ist zu groß.";
            }
            if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "JPG" && $imageFileType != "PNG" && $imageFileType != "JPEG") {
                $meldung = $meldung . "Ungültiges Format.";
            }

            if(!(empty($meldung))){
                $meldung = $meldung . "Die Datei wurde nicht hochgeladen.";
            }
            else{
                if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
                    $picturename = $_FILES["fileToUpload"]["name"];
                    $pictureheightwidth = $check[3];
                    $picturepath = $target_file;
        
                    $eintrag = "INSERT INTO bilder (bild_name, bild_werte, bild_pfad) VALUES ('$picturename', '$pictureheightwidth', '$picturepath')";
                    $eintragen = mysqli_query($db, $eintrag);    
        
                    $meldung = "Das Bild wurde erfolgreich hochgeladen";
                }
                else{
                    $meldung = $meldung . "Fehler beim hochladen des Bildes.";
                }
            }
        }
        else{
            echo "Die Datei ist kein Bild.";
        }
    }
    echo $meldung;
?> 

<form action="index.php?content=upload" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload" id="fileToUpload">
    <br>
    <input type="submit" value="Hochladen" class="button-submit" name="submit">
</form>
&#13;
&#13;
&#13;

............................................... .................................................. .................................................. .................................................. ....................

2 个答案:

答案 0 :(得分:0)

您正在寻找uniqid()功能:

$pictureame = uniqid(rand(), true);

它会生成这样一个“随机”ID,但同时也要注意另一个文件尚未使用该唯一名称。没有它你就会冒碰撞的风险。乍一看不太可能,但这只是缩放问题: - )

查看文档:{​​{3}}

答案 1 :(得分:0)

这可以为您提供有关如何重命名文件的线索

http://php.net/manual/en/function.move-uploaded-file.php