php實現多檔案上傳,與單檔案上傳絕大部分是相同的,不過還是有區分的地方,主要有三點:
一、前端頁面:
可以出現多個檔案瀏覽按鈕,也可以設定檔案瀏覽按鈕可以選擇多個檔案。需要注意的是檔案瀏覽按鈕的名字是陣列,因為要求上傳多個檔案。
二、如果上傳的是多個檔案,通過$_files獲得的陣列是三維陣列;如果上傳的是單個檔案,通過$_files獲得的陣列是二維陣列,所以這都需要判斷,並且為了使用通過檢測的檔案成功上傳,需要重構上傳檔案的資訊。
其中getfiles()為上傳檔案資訊的重構函式封裝;uploadfile()為上傳檔案的檢測函式封裝,具體**如下:
<?php
//構造上傳檔案資訊
function getfiles()elseif(is_array($file['name']))
}} return $files; }
function uploadfile($pic_info)
echo $error_msg;
return false; }
//獲取上傳檔案的型別,兩種方法
//判斷上傳檔案型別
if(!in_array($type,$allow))
//檢測上傳檔案大小是否符合大小
$maxsize = 2097152; //2m
if($pic_info['size']>$maxsize)
//檢測檔案是否是通過http post方式上傳的
if(!is_uploaded_file($pic_info['tmp_name']))
//檢測上傳檔案是否為真實的型別
if(!getimagesize($pic_info['tmp_name']))
//為上傳檔案起唯一的名字,確保不被覆蓋
//如果指定目錄不存在,則建立目錄
$uploadpath = 'upload';
if(!file_exists($uploadpath))
$destination = $uploadpath.'/'.$unique;
//從暫存目錄上傳到指定目錄,@遮蔽錯誤資訊
if(!@move_uploaded_file($pic_info['tmp_name'],$destination))
echo '檔案上傳成功
'; return $destination;
}else
} ?>
三、通過php**實現多個檔案的上傳功能
<?php
//print_r($_files);
header('content-type:text/html;charset=utf-8');
include_once 'multiupload.php';
$files = getfiles();
print_r($files);
foreach($files as $fileinfo)
//array_values()返回陣列中所有的值並給其建立數字索引。
//array_filter()對陣列進行過濾,去掉空值
$uploadfile = array_values(array_filter($file));
print_r($uploadfile);
?>
可以在頁面上得到如下資訊,可以看到上傳成功檔案的名稱:
)檔案上傳成功
檔案上傳成功
檔案上傳成功
檔案上傳成功
PHP實現多檔案上傳
php檔案上傳流程 單擊提交按鈕,瀏覽器使用者將包含上傳檔案的表單資料提交給php處理程式 web伺服器和php預處理器首先判斷表單資料的大小是否超過php.ini配置檔案中的post max size選項設定的上限值。若超過,php處理程式將無法得到任何表單資料,此時不僅上傳檔案失敗,而且表單控制...
PHP實現多檔案上傳
charset utf 8 檔案上傳title head style color white background color 525d76 font size 22px text align center 檔案上傳h1 action upload.php method post enctype m...
PHP實現多檔案上傳筆記
總結 php檔案上傳的大概過程 通過表單中的檔案語提交上傳檔案,通過 files陣列處理檔案,通過is uploaded file 函式驗證上傳檔案,通過move uploaded file 函式完成檔案上傳.說明幾點 1 form表單的 enctype 屬性 form 表單的encrypt 屬性的...