PHP上傳類型詳解
PHP的文件上傳功能是開發(fā)者們經(jīng)常用到的功能之一,常用于網(wǎng)站的上傳圖片、上傳視頻、上傳文檔等功能。PHP中文件的上傳經(jīng)常使用$_FILES數(shù)組。然而,文件在上傳的過程中需要注意文件的大小和類型限制,否則可能會(huì)引起一系列的問題。本文將詳細(xì)介紹PHP上傳類型的相關(guān)知識(shí)。
一、什么是上傳類型?
上傳類型即指上傳文件時(shí),文件后綴名的類型。上傳類型可分為兩種,一種是允許上傳的文件類型,一種是禁止上傳的文件類型。通常情況下,為了安全緣故,用戶常常上傳被允許的文件類型,而禁止上傳的文件類型則常被黑客利用上傳木馬程序等危險(xiǎn)文件。
二、如何限制上傳文件類型?
PHP中限制上傳文件類型可以通過兩種方式,一種是通過前端限制,一種是通過后端限制。
1.前端限制
前端限制即通過頁面中的JS驗(yàn)證上傳的文件類型。JS驗(yàn)證可以在提交數(shù)據(jù)前進(jìn)行驗(yàn)證,用于提醒用戶上傳文件類型無誤。示例如下:
2.后端限制
后端限制即通過PHP代碼驗(yàn)證。首先需要在form表單中添加enctype="multipart/form-data"屬性,這是因?yàn)槲募蟼鞅仨氁訮OST方式傳遞表單數(shù)據(jù),所以需要指定傳遞的類型。示例如下:
PHP代碼如下:
三、如何設(shè)置允許上傳的文件類型?
通過PHP代碼設(shè)置上傳允許的文件類型,只需要在代碼中設(shè)置一個(gè)允許上傳的文件類型數(shù)組。示例如下:
四、如何設(shè)置禁止上傳的文件類型?
PHP中限制上傳的文件類型同樣非常簡(jiǎn)單,只需設(shè)置一個(gè)禁止上傳的文件類型數(shù)組即可。示例代碼如下:
總結(jié)
通過本文的介紹,你應(yīng)該了解如何限制上傳文件的類型和如何設(shè)置允許和禁止上傳的文件類型。我們希望讀者能夠靈活使用上傳功能,并在保證數(shù)據(jù)安全的前提下提高用戶的交互體驗(yàn)。
PHP的文件上傳功能是開發(fā)者們經(jīng)常用到的功能之一,常用于網(wǎng)站的上傳圖片、上傳視頻、上傳文檔等功能。PHP中文件的上傳經(jīng)常使用$_FILES數(shù)組。然而,文件在上傳的過程中需要注意文件的大小和類型限制,否則可能會(huì)引起一系列的問題。本文將詳細(xì)介紹PHP上傳類型的相關(guān)知識(shí)。
一、什么是上傳類型?
上傳類型即指上傳文件時(shí),文件后綴名的類型。上傳類型可分為兩種,一種是允許上傳的文件類型,一種是禁止上傳的文件類型。通常情況下,為了安全緣故,用戶常常上傳被允許的文件類型,而禁止上傳的文件類型則常被黑客利用上傳木馬程序等危險(xiǎn)文件。
二、如何限制上傳文件類型?
PHP中限制上傳文件類型可以通過兩種方式,一種是通過前端限制,一種是通過后端限制。
1.前端限制
前端限制即通過頁面中的JS驗(yàn)證上傳的文件類型。JS驗(yàn)證可以在提交數(shù)據(jù)前進(jìn)行驗(yàn)證,用于提醒用戶上傳文件類型無誤。示例如下:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" onchange="checkFile(this)" />
<input type="submit" value="submit" />
</form>
<script>
function checkFile(file){
var allType = new Array(".jpg", ".gif", ".bmp", ".png");
var endstr = file.value.substring(file.value.lastIndexOf(".")).toLowerCase();
var isRightType = false;
for(var i = 0; i < allType.length; i++){
if(allType[i] == endstr){
isRightType = true;
break;
}
}
if(!isRightType){
alert("您選擇的文件不是圖片文件,請(qǐng)重新選擇!");
file.value = "";
}
}
</script>
2.后端限制
后端限制即通過PHP代碼驗(yàn)證。首先需要在form表單中添加enctype="multipart/form-data"屬性,這是因?yàn)槲募蟼鞅仨氁訮OST方式傳遞表單數(shù)據(jù),所以需要指定傳遞的類型。示例如下:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" />
<input type="submit" value="submit" />
</form>
PHP代碼如下:
$allowed_type = array("jpg", "gif", "bmp", "png");
$file = $_FILES['upload_file']['name'];
$ext = pathinfo($file, PATHINFO_EXTENSION);
if(!in_array($ext, $allowed_type)){
echo "您上傳的文件類型不被允許,請(qǐng)重新上傳!";
}
三、如何設(shè)置允許上傳的文件類型?
通過PHP代碼設(shè)置上傳允許的文件類型,只需要在代碼中設(shè)置一個(gè)允許上傳的文件類型數(shù)組。示例如下:
$allowed_type = array("jpg", "gif", "bmp", "png","zip","rar","txt");
$file = $_FILES['upload_file']['name'];
$ext = pathinfo($file, PATHINFO_EXTENSION);
if(!in_array($ext, $allowed_type)){
echo "您上傳的文件類型不被允許,請(qǐng)重新上傳!";
}
四、如何設(shè)置禁止上傳的文件類型?
PHP中限制上傳的文件類型同樣非常簡(jiǎn)單,只需設(shè)置一個(gè)禁止上傳的文件類型數(shù)組即可。示例代碼如下:
$forbidden_type = array("php", "jsp");
$file = $_FILES['upload_file']['name'];
$ext = pathinfo($file, PATHINFO_EXTENSION);
if(in_array($ext, $forbidden_type)){
echo "您所上傳的文件類型不被允許,請(qǐng)重新上傳!";
}
總結(jié)
通過本文的介紹,你應(yīng)該了解如何限制上傳文件的類型和如何設(shè)置允許和禁止上傳的文件類型。我們希望讀者能夠靈活使用上傳功能,并在保證數(shù)據(jù)安全的前提下提高用戶的交互體驗(yàn)。