當前位置: 首頁> 最新文章列表> PHP教程:如何高效獲取文件擴展名及上傳文件示例解析

PHP教程:如何高效獲取文件擴展名及上傳文件示例解析

gitbox 2025-06-27

PHP中獲取文件擴展名的重要性

在PHP開發過程中,獲取文件擴展名是一項常見且必要的操作,尤其是在處理文件上傳和文件類型判斷時。本文將為您介紹幾種常用的PHP方法來獲取文件擴展名,並通過實際示例演示完整流程。

文件擴展名的基本概念

文件擴展名是文件名中最後一個點號(".")之後的部分,用於標識文件的類型。例如,文件名"example.txt" 中,擴展名為"txt"。通過擴展名,系統能夠識別文件類型並決定使用何種程序打開該文件。

PHP獲取文件擴展名的常用方法

在PHP中,可以通過多種函數輕鬆提取文件擴展名。以下介紹兩種常見且實用的方式:

使用pathinfo() 函數

pathinfo() 函數返回包含路徑信息的關聯數組,可以直接獲取擴展名。

 $file = 'example.txt';
$ext = pathinfo($file, PATHINFO_EXTENSION);
echo $ext;

執行後將輸出:txt。

使用strrchr() 函數

strrchr() 函數返回字符串中最後一次出現指定字符及其後續內容。結合substr() 可以提取不帶點號的擴展名。

 $file = 'example.txt';
$ext = strrchr($file, '.');
// 輸出 .txt

// 去掉點號
$ext = substr($ext, 1);
echo $ext;

執行後輸出結果同樣為:txt。

實戰案例:PHP上傳文件並獲取擴展名

下面示範一個常見的文件上傳場景,展示如何獲取上傳文件的擴展名,並進行類型和大小的校驗。

 if (isset($_POST['submit'])) {
    $file = $_FILES['file'];
    $fileName = $file['name'];
    $fileExt = strtolower(end(explode('.', $fileName)));
    $fileTmpName = $file['tmp_name'];
    $fileSize = $file['size'];
    $fileError = $file['error'];
    $allowed = array('jpg', 'jpeg', 'png', 'gif');

    if (in_array($fileExt, $allowed)) {
        if ($fileError === 0) {
            if ($fileSize < 1000000) {
                $fileNameNew = uniqid('', true) . '.' . $fileExt;
                $fileDest = "uploads/" . $fileNameNew;
                move_uploaded_file($fileTmpName, $fileDest);
                echo "File uploaded successfully!";
            } else {
                echo "Your file is too big!";
            }
        } else {
            echo "There was an error uploading your file!";
        }
    } else {
        echo "You cannot upload files of this type!";
    }
}

此代碼通過$_FILES獲取上傳文件信息,提取文件擴展名後轉為小寫,確保文件類型符合允許列表。若滿足文件大小及無上傳錯誤,文件將被保存到指定目錄,並反饋上傳結果。

總結

本文系統介紹了PHP中獲取文件擴展名的多種方法,並結合文件上傳實例,幫助開發者理解並掌握文件擴展名提取與文件上傳的基本流程。掌握這些技巧,將有效提升PHP文件處理的效率與安全性。