檔案上傳實際上就是在前段使用乙個form表單提交本地檔案到伺服器,然後在伺服器端將檔案從臨時目錄轉移到指定目錄的過程。
1、php配置檔案
php.ini檔案中的fil uploads部分定義了相關檔案上傳配置,
2、前端表單
當使用由檔案上傳控制項的表單abkxxbcyq時,必須將form的enctype設定為"multipart/form-data"。
可以在客戶端對上傳檔案的大小與型別進行限制:
3、後台處理
上傳後會在伺服器端得到乙個$_files檔案陣列如下:
上傳到伺服器的臨時檔案預設儲存在php.ini中upload_tmp_dir所設定的目錄下,我們需要將檔案移動到指定位置:
<?php header('content-type:text/html;charset=utf-8');
$myfile=$_files['myfile'];
//獲取檔案陣列['myfile']的屬性與name
$tmp=$myfile['tmp_name'];
$picname=$myfile['name'];
//windows採用gbk編碼,php採用utf-8編碼,需要改變檔名的編碼格式
$picname=iconv('utf-8','gbk',$picname);
//將零時檔案$tmp移動到指定目錄userpic並命名為$picname
copy($tmp,"userpic/".$picname);
file_uploads=on
開啟http上傳
upload_tmp_dir
臨時檔案儲存目錄
upload_max_filesize=2m
最大上傳檔案大小
post_max_size=8m
post方式傳輸最大資料值
max_file_uploads
一次上傳最大檔案數
memory_limit=128m
單執行緒最大記憶體佔用量
max_excution_time=-1
指令碼解析所允許的最大執行時間(s),預設為-1未開啟
4、錯誤處理
對file陣列中的error屬性進行判斷處理:
$error=$myfile['myfile']['error'];
if ($error==0)else
}else
}5、上傳限制
在前端可以對上傳的檔案型別,大小進行限制:
abkxxbcyq
注意限制是以位元組為單位
在伺服器端也要做響應的限制:
$size=$myfile['size'];//獲取檔案大小
$maxsize=2097152;//設定最大允許位元組
$type=$myfile['type'];//獲取型別
$allowtypr=array('image/jpeg','image/png','image/gif');//允許型別陣列
if ($error==0)
if (!in_array($type,$allowtypr))
PHP檔案上傳的原理及實現
php檔案上傳的原理及實現 利用php的檔案函式來實現上傳 這段 分為兩個檔案,乙個為upload.html,乙個是upload.php 其中,請注意 這是乙個標籤,我們要實現檔案的上傳,必須指定為 multipart form data,否則伺服器將不知道要幹什麼。值得注意的是檔案upload.h...
PHP檔案上傳進度的實現原理
uploadprogress擴充套件需要依靠js獲取伺服器提供的進度,這裡的進度是伺服器接收的檔案進度。而在php5.4之後,我們可以在不新增擴充套件的情況下,從session資料中獲取了檔案上傳的進度。uploadprogress擴充套件和php5.4的session擴充套件都能獲取上傳的進度,其...
php檔案上傳簡單實現方法
檔案1 index.php 複製 如下 檔案2 uploadprocess.php 複製 如下 filetype arr array image jpeg image png image gif image gif 允許上傳的型別 if empty post sub echo 等型別 exit ex...