三款php多文件上傳實例代碼在php開發應用中經常會碰到文件上傳這個需,有時也會碰到要多文件上傳,下面我們就來看看我提供的三款php多文件上傳實例代碼,好了費話不說多了來看看這些多文件上傳功能適合你麼。
三款php教程多文件上傳實例代碼
在php開發應用中經常會碰到文件上傳這個需,有時也會碰到要多文件上傳,下面我們就來看看我提供的三款php多文件上傳實例代碼,好了費話不說多了來看看這些多文件上傳功能適合你麼。
示例代碼:
<form action="" method="post" enctype="multipart/form-data" >
<input type="file" name="uploadfile[]"> 命名必是這樣有"[]"
<input type="file" name="uploadfile[]">
//設置允許用戶上傳的文件類型。
$type = array('gif', 'jpg', 'png', 'zip', 'rar');
$upload = new uploadfile($_files['uploadfile'], '/', 1024*1024, $type);
參數說明:1:表單的文件,2:上傳目錄,3:支持文件大小,4:允許文件類型
$icount = $upload->upload();
if($icount > 0) { //上傳成功
print_r($upload->getsaveinfo());
*/
class uploadfile {
var $postfile = array(); // 用戶上傳的文件
var $custompath = ""; // 自定義文件上傳路徑
var $maxsize = ""; // 文件最大尺寸
var $lasterror = ""; // 最後一次出錯信息
var $allowtype = array('gif', 'jpg', 'png', 'zip', 'rar', 'txt', 'doc', 'pdf');
var $endfilename = ""; // 最終保存的文件名
var $saveinfo = array(); // 保存文件的最終信息
var $root_dir = ""; // 項目在硬盤上的位置
/**
* 構造函數
* @access public
*/
function uploadfile($arrfile, $path="_", $size = 2097152, $type = 0) {
$this->postfile = $arrfile;
$this->custompath = $path == "_" ? "" : $path ;
$this->maxsize = $size;
if($type!=0) $this->allowtype = $arrfile;
$this->root_dir = $_server['document_root'];
$this->_mkdir($this->custompath);
}
/**
* 文件上傳的核心代碼
* @access public
* @return int 上傳成功文件數
*/
function upload() {
$ilen = sizeof($this->postfile['name']);
for($i=0;$i<$ilen;$i++){
if ($this->postfile['error'][$i] == 0) { //上傳時沒有發生錯誤
//取當前文件名、臨時文件名、大小、擴展名,後面將用到。
$sname = $this->postfile['name'][$i];
$stname = $this->postfile['tmp_name'][$i];
$isize = $this->postfile['size'][$i];
$stype = $this->postfile['type'][$i];
$sextn = $this->_getextname($sname);
//檢測當前上傳文件大小是否合法。
if($this->_checksize){
$this->lasterror = "您上傳的文件[".$sname."],超過系統支持大小!";
$this->_showmsg($this->lasterror);
continue;
}if(!is_uploaded_file($stname)) {
$this->lasterror = "您的文件不是通過正常途徑上傳!";
$this->_showmsg($this->lasterror);
continue;
}
$_filename = basename($sname,".".$sextn)."_".time().".".$sextn;
$this->endfilename = $this->custompath.$_filename;
if(!move_uploaded_file($stname, $this->root_dir.$this->endfilename)) {
$this->lasterror = $this->postfile['error'][$i];
$this->_showmsg($this->lasterror);
continue;
}//存儲當前文件的有關信息,以便其它程序調用。
$this->save_info[] = array("name" => $sname, "type" => $sextn, "size" => $isize, "path" => $this->endfilename);
}
}return sizeof($this->save_info);
}
1 2 3