要使用PHP的fileinfo擴展來處理上傳文件,請按照以下步驟操作:
確保你的PHP安裝包含了fileinfo擴展。你可以通過運行phpinfo()
函數來檢查fileinfo擴展是否已啟用。
在HTML表單中創建一個文件上傳字段:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>File Upload with Fileinfo</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploaded_file" id="uploaded_file">
<input type="submit" value="Upload">
</form>
</body>
</html>
注意enctype="multipart/form-data"
屬性,它允許用戶上傳文件。
upload.php
的PHP腳本,用于處理文件上傳和fileinfo擴展的功能:<?php
if ($_FILES["uploaded_file"]["error"] == UPLOAD_ERR_OK) {
// 獲取文件擴展名
$fileExtension = pathinfo($_FILES["uploaded_file"]["name"], PATHINFO_EXTENSION);
// 確保文件擴展名是小寫的
$fileExtension = strtolower($fileExtension);
// 檢查文件擴展名是否受支持
$supportedExtensions = array("jpg", "jpeg", "png", "gif");
if (in_array($fileExtension, $supportedExtensions)) {
// 讀取文件信息
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->buffer($_FILES["uploaded_file"]["tmp_name"]);
// 在這里處理文件,例如將文件移動到指定目錄或執行其他操作
move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], "uploads/" . $_FILES["uploaded_file"]["name"]);
echo "File uploaded successfully. MIME type: " . $mimeType;
} else {
echo "Invalid file extension. Supported extensions: JPG, JPEG, PNG, GIF.";
}
} else {
echo "Error uploading file. Error code: " . $_FILES["uploaded_file"]["error"];
}
?>
在這個腳本中,我們首先檢查上傳文件是否有錯誤。然后,我們使用pathinfo()
函數獲取文件的擴展名,并將其轉換為小寫。接下來,我們檢查文件擴展名是否受支持。如果受支持,我們使用finfo
類讀取文件的MIME類型。最后,我們將文件移動到指定的目錄(在這個例子中是uploads
目錄)。
確保在運行此腳本之前創建一個名為uploads
的目錄,并設置適當的權限,以便PHP可以將文件上傳到該目錄。