猿问

上传PHP时如何重命名文件

我正在使用以下代码上传文件,一切正常,我只想上传新名称的文件,该名称应该是当前上传时间,实际上我想上传名称为上传时间的文件


<?php



$statusMsg = '';


// File upload path

$targetDir = "../uploads/";

$fileName = basename($_FILES["file"]["name"]);

$targetFilePath = $targetDir . $fileName;

$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);


if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){

    // Allow certain file formats

    $book_title=$_POST['book_title'];

    $allowTypes = array('jpg','png','jpeg');

    if(in_array($fileType, $allowTypes)){

        // Upload file to server

        if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){

            // Insert image file name into database

            $insert = mysqli_query($con,"INSERT into books (book_title,book_author,book_image,book_url) VALUES ('','','".$fileName."', '.')");

            if($insert){

                $statusMsg = "The file ".$fileName. " has been uploaded successfully.";

            }else{

                $statusMsg = "File upload failed, please try again.";

            } 

        }else{

            $statusMsg = "Sorry, there was an error uploading your file.";

        }

    }else{

        $statusMsg = 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';

    }

}else{

    $statusMsg = 'Please select a file to upload.';

}


// Display status message

echo $statusMsg;


?>


动漫人物
浏览 138回答 2
2回答

米琪卡哇伊

将当前日期添加到从用户收到的文件名中$fileName&nbsp;=&nbsp;date('Y-m-d_')&nbsp;.&nbsp;basename($_FILES["file"]["name"]);如果他们在一天内添加多个文件,您也可以添加时间$fileName&nbsp;=&nbsp;date('Y-m-d_His_')&nbsp;.&nbsp;basename($_FILES["file"]["name"]);

慕尼黑8549860

默认情况下$_FILES['file']['name']是用户上传文件的实际名称,假设用户从资源管理器上传文件“demoImage.jpeg”,那么它就是您代码中分配给的实际名称$fileName,只需修改这行代码,如下所示:改变这个$fileName&nbsp;=&nbsp;basename($_FILES["file"]["name"]);到$fileName&nbsp;=&nbsp;Date('His')&nbsp;.&nbsp;$fileType;您可以更改 Date 函数的参数来为您的文件名生成特定的日期/时间。
随时随地看视频慕课网APP
我要回答