PHP 文件的上傳與檢測
2018-09-12 08:46:51
來源:
揚州市新竹網(wǎng)絡(luò)科技有限公司
系統(tǒng)變量: $_FILES是一個二維數(shù)組,一維是當(dāng)前的文件上件控件的名稱,就是name屬性值
二維是它的當(dāng)前屬性,重要的有以下幾個:
$_FILES['file']['name']: 文件原始名稱
$_FILES['file']['type']: 文件類型
$_FILES['file']['size']: 上傳的文件大小
$_FILES['file']['tmp_name']: 服務(wù)器上的臨時文件夾
$_FILES['file']['error']: 上傳錯誤代碼
$_SERVER['PHP_SELF']:當(dāng)前php腳本
enctype="multipart/form-data" :允許通過表單上傳文件
method:請求類型必須是POST
處理腳本的三種語法:
1. 嚴格的寫法:$_SERVER['PHP_SELF']:建議實際工作中用htmlspecialchars()進行防跨域攻擊處理
2. 死板的寫法,直接寫上當(dāng)前文件名: demo6.php
3. 懶的寫法: 空,啥與不寫,默認就是提交到當(dāng)前頁面的php腳本處理
form樣式
檢測請求類型是否POST
二維是它的當(dāng)前屬性,重要的有以下幾個:
$_FILES['file']['name']: 文件原始名稱
$_FILES['file']['type']: 文件類型
$_FILES['file']['size']: 上傳的文件大小
$_FILES['file']['tmp_name']: 服務(wù)器上的臨時文件夾
$_FILES['file']['error']: 上傳錯誤代碼
$_SERVER['PHP_SELF']:當(dāng)前php腳本
enctype="multipart/form-data" :允許通過表單上傳文件
method:請求類型必須是POST
處理腳本的三種語法:
1. 嚴格的寫法:$_SERVER['PHP_SELF']:建議實際工作中用htmlspecialchars()進行防跨域攻擊處理
2. 死板的寫法,直接寫上當(dāng)前文件名: demo6.php
3. 懶的寫法: 空,啥與不寫,默認就是提交到當(dāng)前頁面的php腳本處理
form樣式
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST" enctype="multipart/form-data">
用隱藏域設(shè)置允許上傳的文件大小,僅考參考
<input type="hidden" name="MAX_FILE_SIZE" value="542488">
PHP樣式檢測請求類型是否POST
$_SERVER['REQUEST_METHOD'] == 'POST'
檢測是否有文件被上傳
isset($_FILES['upload'])
將文件先移動到臨時目錄
move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")
對上傳錯誤進行處理
if ($_FILES['upload']['error'] > 0 ) {
echo '<p>錯誤原因是:<strong>';
switch ($_FILES['upload']['error']) {
case 1:
echo '文件超過了php.ini配置中設(shè)置的大小';
break;
case 2:
echo '文件超過了表單中常量設(shè)置的大小';
break;
case 3:
echo '僅有部分文件被上傳';
break;
case 4:
echo '沒有文件被上傳';
break;
case 6:
echo '沒有可用的臨時文件夾';
break;
case 7:
echo '磁盤已滿,寫入失敗';
break;
case 8:
echo '上傳意外中止';
break;
default:
echo '系統(tǒng)未知錯誤';
break;
}
echo '</strong></p>';
}
把創(chuàng)建的臨時文件刪除,當(dāng)然系統(tǒng)也會在結(jié)束會話時自動清空
if (file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])) {
unlink($_FILES['upload']['tmp_name']);
}
本站文章均為新竹網(wǎng)站建設(shè)摘自權(quán)威資料,書籍,或網(wǎng)絡(luò)原創(chuàng)文章,如有版權(quán)糾紛或者違規(guī)問題,請即刻聯(lián)系我們刪除,我們歡迎您分享,引用和轉(zhuǎn)載,我們謝絕直接復(fù)制和抄襲!感謝...
猜你喜歡
微信公眾號
手機網(wǎng)站
小程序
我們猜你喜歡
-
PHP 類的繼承與方法重寫
類的繼承與方法重寫 class Demo1 { 父類屬性 private $name; p...
-
企業(yè)網(wǎng)站應(yīng)該如何規(guī)劃制作
1、做好規(guī)劃,控制成本,做好前基本準備工作 高質(zhì)量的企業(yè)網(wǎng)站并不是成本越高就越好。網(wǎng)站建設(shè)的目的總是為企業(yè)的經(jīng)營服務(wù),做為一個企業(yè)經(jīng)營的工具,揚州網(wǎng)站建設(shè)也要注意成本的控制,并不是越貴越好,有的人過度追求網(wǎng)站的美化,投入大量的成本在...
-
PHP 類與對象的含義,自定義類于實例化,屬性私有化,通過公共接口來進行訪問
聲明一個名為GirlFriend1的類 class GirlFriend1 { private 訪問控制,私有,僅在當(dāng)前對象內(nèi)可以使用 p...
-
如何使用抓取頻次工具
百度站長平臺使用的人有很多,可是依然有許多人不知道如何正確使用平臺中的站長工具. 一、什么是抓取頻次 抓取頻次是搜索引擎在單位時間內(nèi)(天級)對網(wǎng)站服務(wù)器抓取的總次數(shù),如果搜索引...
-
網(wǎng)站制作指南
對于初創(chuàng)企業(yè)來說,一個官方網(wǎng)站是很重要的,它能讓你的品牌快速在互聯(lián)網(wǎng)傳播,吸引更多客戶。 企業(yè)網(wǎng)站制作要這樣做: 1.有醒目顯眼的頭圖banner,可以是標題大圖,可以是輪播圖,也可以是動...