在php中随机重命名相同的上传个人资料图片?

时间:2016-09-22 05:30:24

标签: php

我已在php成功上传图片的图片上传脚本,但现在如果用户再次上传相同的个人资料图片我想要随机重命名我有 rand(1,100000)但它给了我错误。

我的脚本在这里:

<?php
$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

if (file_exists($target_file)) {
 $_FILES['file']['name']=rand(1,100000).$_FILES['file']['name'];
    $uploadOk = 0;
}

if ($_FILES["fileToUpload"]["size"] > 600000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";

} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
	
	if (is_file($target_file))
{
echo "Successful<BR/>";
echo "File Name :".$_FILES['fileToUpload']['name']."<BR/>";
echo "File Size :".$_FILES['fileToUpload']['size']."<BR/>";
echo "File Type :".$_FILES['fileToUpload']['type']."<BR/>";
echo "<img src=\"$target_file\" width=\"150\" height=\"150\">";
}
}
?>

我收到以下错误:

enter image description here

4 个答案:

答案 0 :(得分:2)

在此功能中进行更改。

if (file_exists($target_file)) {
    $target_file = $target_dir .rand(1,100000). basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
}

答案 1 :(得分:1)

更改

&#13;
&#13;
sed
&#13;
&#13;
&#13;  至
&#13;
&#13;
$target_dir = "./uploads/";
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您需要更改代码:

if (file_exists($target_file)) {
 $_FILES['file']['name']=rand(1,100000).$_FILES['file']['name'];
    $uploadOk = 0;
}

if (file_exists($target_file)) {
    $target_file = $target_dir . rand(1,100000) . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 0;
}

答案 3 :(得分:1)

使用以下代码

if (file_exists($target_file)) {
 $_FILES['fileToUpload']['tmp_name']=rand(1,100000).$_FILES['fileToUpload']['tmp_name'];
    $uploadOk = 0;
}