溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP怎么上傳圖片并實現(xiàn)特定的命名規(guī)則

發(fā)布時間:2023-03-29 14:34:27 來源:億速云 閱讀:106 作者:iii 欄目:編程語言

今天小編給大家分享一下PHP怎么上傳圖片并實現(xiàn)特定的命名規(guī)則的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、基本的圖片上傳

首先,我們需要創(chuàng)建一個表單來接受用戶上傳文件。表單應該包含一個文件輸入元素,提交按鈕和一個action屬性指向處理上傳的PHP腳本。

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

上面的代碼告訴瀏覽器提交表單時需要將數(shù)據(jù)編碼為“multipart/form-data”。這種編碼方式可用于上傳文件。

下面是處理上傳的PHP代碼,我們將在此處實現(xiàn)重命名規(guī)則。

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

// Check if image file is a actual image or fake image
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;
    }
}

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

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

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

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} 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.";
    }
}
?>

二、特定的文件命名規(guī)則

現(xiàn)在,我們將修改PHP代碼,實現(xiàn)基于當前日期和時間的重命名規(guī)則。

<?php
$target_dir = "uploads/";
$timestamp = date("YmdHis");
$target_file = $target_dir . $timestamp . '.' . pathinfo($_FILES["fileToUpload"]["name"], PATHINFO_EXTENSION);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
...

在這個例子中,我們將當前日期時間存儲在$timestamp變量中。我們然后將上傳文件重命名為 $timestamp.擴展名 ,以確保每個上傳的文件都有唯一的名稱。

三、保持原始文件名但添加前綴的命名規(guī)則

現(xiàn)在,我們將修改PHP代碼,實現(xiàn)保持原始文件名的重命名規(guī)則,但添加一個前綴。

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

在這個例子中,我們將預定義的prefix變量添加到上傳文件的原始名稱中。這將產生前綴為 "myprefix_"的文件名。

以上就是“PHP怎么上傳圖片并實現(xiàn)特定的命名規(guī)則”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

php
AI