文件上傳是 Web 開發中必不可少的一環,PHP 通過 input file 實現文件上傳功能非常的簡單,上傳文件是服務器端處理的典型場景之一,對於 PHP 開發來說,掌握文件上傳的方法是一個非常好的提升技能的方式。
一、HTML中inputfile上傳文件的基本用法
inputfile 輸入框的 type 屬性設置為 file,即可將其轉換為文件上傳組件。相應的,需要配套使用form表單和submit按鈕來完成上傳功能。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="submit" value="上傳" />
</form>
二、PHP文件上傳的處理方法
上傳的文件通過 PHP 腳本接收,在服務器上創建一個目標文件存儲上傳的文件。
<?php
$target_dir = "uploads/"; //目標文件夾
$target_file = $target_dir . basename($_FILES["file"]["name"]); //文件名
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["file"]["tmp_name"]);
if($check !== false) {
echo "文件類型: " . $check["mime"] . ". ";
$uploadOk = 1;
} else {
echo "文件不是圖片。";
$uploadOk = 0;
}
}
if ($uploadOk == 0) {
echo "文件上傳失敗。";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "文件 ". basename( $_FILES["file"]["name"]). " 上傳成功。";
} else {
echo "文件上傳失敗。";
}
}
?>
三、文件上傳的安全性問題
文件上傳功能在開發中還需要考慮一些安全性問題,如文件上傳的類型、大小等,如果不加以限制,可能會造成一些安全隱患。
文件類型限定
需要對文件類型進行限定,防止用戶上傳特定格式的文件,例如上傳 PHP 文件或圖片木馬的危險行為。這可以通過檢查上傳文件的 MIME 類型或文件擴展名來實現。在PHP中,使用in_array() 函數來檢查文件類型是否符合規定。
$allowed = array('gif','jpg','jpeg','png','pdf','txt');
if(!in_array($imageFileType,$allowed)){
echo "文件類型不符,只允許上傳 gif, jpg, jpeg, png, pdf, txt 文件。";
$uploadOk = 0;
}
文件大小限定
限制上傳的文件大小可以防止大文件上傳。在PHP中,使用 $_FILES[“file”][“size”] 可以獲取上傳文件的大小。
if ($_FILES["file"]["size"] > 500000) {
echo "文件大小超過限制,只允許上傳小於 500KB 的文件。";
$uploadOk = 0;
}
四、總結
使用input file實現文件上傳功能是非常常見的 Web 開發任務之一,PHP 通過 $_FILE 變量可以輕鬆地接收上傳的文件信息,並使用 move_uploaded_file 函數存儲上傳文件到指定的目錄。在文件類型和大小的限制方面,可以使用in_array 和 $_FILES[“file”][“size”] 等方法來保護上傳文件的安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/153357.html
微信掃一掃
支付寶掃一掃