要使用PHP的fileinfo擴(kuò)展來處理上傳文件,請(qǐng)按照以下步驟操作:
確保你的PHP安裝包含了fileinfo擴(kuò)展。你可以通過運(yùn)行phpinfo()
函數(shù)來檢查fileinfo擴(kuò)展是否已啟用。
在HTML表單中創(chuàng)建一個(gè)文件上傳字段:
<!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擴(kuò)展的功能:<?php
if ($_FILES["uploaded_file"]["error"] == UPLOAD_ERR_OK) {
// 獲取文件擴(kuò)展名
$fileExtension = pathinfo($_FILES["uploaded_file"]["name"], PATHINFO_EXTENSION);
// 確保文件擴(kuò)展名是小寫的
$fileExtension = strtolower($fileExtension);
// 檢查文件擴(kuò)展名是否受支持
$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"]);
// 在這里處理文件,例如將文件移動(dòng)到指定目錄或執(zhí)行其他操作
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"];
}
?>
在這個(gè)腳本中,我們首先檢查上傳文件是否有錯(cuò)誤。然后,我們使用pathinfo()
函數(shù)獲取文件的擴(kuò)展名,并將其轉(zhuǎn)換為小寫。接下來,我們檢查文件擴(kuò)展名是否受支持。如果受支持,我們使用finfo
類讀取文件的MIME類型。最后,我們將文件移動(dòng)到指定的目錄(在這個(gè)例子中是uploads
目錄)。
確保在運(yùn)行此腳本之前創(chuàng)建一個(gè)名為uploads
的目錄,并設(shè)置適當(dāng)?shù)臋?quán)限,以便PHP可以將文件上傳到該目錄。