適用于初學(xué)者的簡易PHP文件上傳類
更新時間:2015年10月29日 14:32:17 投稿:lijiao
這篇文章主要為大家分享了一個適用于初學(xué)者的簡易PHP文件上傳類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例講述了PHP多文件上傳類,分享給大家供大家參考。具體如下:
<?php
class Test_Upload{
protected $_uploaded = array();
protected $_destination;
protected $_max = 1024000;
protected $_messages = array();
protected $_permited = array(
'image/gif',
'image/jpeg',
'image/pjpeg',
'image/png'
);
protected $_renamed = false;
/**
*
* @param mix $path
*
*/
public function __construct($path){
if (!is_dir($path) || !is_writable($path)){
throw new Exception("文件名不可寫,或者不是目錄!");
}
$this->_destination = $path;
$this->_uploaded = $_FILES;
}
/**
* 移動文件
*
*/
public function move(){
$filed = current($this->_uploaded);
$isOk = $this->checkError($filed['name'], $filed['error']);
//debug ok
if ($isOk){
$sizeOk = $this->checkSize($filed['name'], $filed['size']);
$typeOk = $this->checkType($filed['name'], $filed['type']);
if ($sizeOk && $typeOk){
$success = move_uploaded_file($filed['tmp_name'], $this->_destination.$filed['name']);
if ($success){
$this->_messages[] = $filed['name']."文件上傳成功";
}else {
$this->_messages[] = $filed['name']."文件上傳失敗";
}
}
}
}
/**
* 查詢messages數(shù)組內(nèi)容
*
*/
public function getMessages(){
return $this->_messages;
}
/**
* 檢測上傳的文件大小
* @param mix $string
* @param int $size
*/
public function checkSize($filename, $size){
if ($size == 0){
return false;
}else if ($size > $this->_max){
$this->_messages[] = "文件超出上傳限制大小".$this->getMaxsize();
return false;
}else {
return true;
}
}
/**
* 檢測上傳文件的類型
* @param mix $filename
* @param mix $type
*/
protected function checkType($filename, $type){
if (!in_array($type, $this->_permited)){
$this->_messages[] = "該文件類型是不被允許的上傳類型";
return false;
}else {
return true;
}
}
/**
* 獲取文件大小
*
*/
public function getMaxsize(){
return number_format($this->_max / 1024, 1).'KB';
}
/**
* 檢測上傳錯誤
* @param mix $filename
* @param int $error
*
*/
public function checkError($filename, $error){
switch ($error){
case 0 : return true;
case 1 :
case 2 : $this->_messages[] = "文件過大!"; return true;
case 3 : $this->_messages[] = "錯誤上傳文件!";return false;
case 4 : $this->_messages[] = "沒有選擇文件!"; return false;
default : $this->_messages[] = "系統(tǒng)錯誤!"; return false;
}
}
}
?>
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)實例
這篇文章主要介紹了thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)功能,結(jié)合實例形式分析了thinkPHP5數(shù)據(jù)庫查詢及json格式數(shù)據(jù)簡單操作技巧,需要的朋友可以參考下2017-10-10
PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法
這篇文章主要介紹了PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法,結(jié)合實例形式分析了ICU擴展intl的實現(xiàn)方法與拼音轉(zhuǎn)換、排序等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
php圖像處理函數(shù)imagecopyresampled用法詳解
這篇文章主要介紹了php圖像處理函數(shù)imagecopyresampled用法,結(jié)合實例形式詳細分析了imagecopyresampled函數(shù)的功能、參數(shù)、使用方法,需要的朋友可以參考下2016-12-12
centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法分析
這篇文章主要介紹了centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法,結(jié)合實例形式分析了centos7環(huán)境下swoole1.9的安裝、配置方法以及HttpServer的相關(guān)使用技巧,需要的朋友可以參考下2020-03-03
PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法
這篇文章主要介紹了PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法,通過Ajax調(diào)用連接百度效果實現(xiàn)檢測網(wǎng)站是否聯(lián)網(wǎng)的功能,需要的朋友可以參考下2015-07-07

