您好,登錄后才能下訂單哦!
上傳類庫
<?php
class upload {
protected $allowExt = array('jpg','jpeg','gif','png','bmp');
protected $allowSize = 1; // 最大上傳大小,單位為M
protected $errno = 0;
protected $error = array(
0=>'上傳完成',
1=>'文件超出upload_max_filesize',
2=>'文件超出表單中 MAX_FILE_SIZE 選項指定的值',
3=>'文件只有部分被上傳',
4=>'沒有文件被上傳',
6=>'找不到臨時目錄',
7=>'文件定入失敗',
8=>'文件大小超出配置文件的限制',
9=>'不允許的文件類型',
10=>'創建目錄失敗',
11=>'未知錯誤,反思中'
);
// 獲取后綴
protected function getExt($file) {
$ext = strtolower(strrchr($file,'.'));
return $ext;
}
// 檢驗后綴
protected function checkExt($ext) {
return in_array(ltrim($ext,'.'),$this->allowExt);
}
// 檢驗大小
protected function checkSize($size) {
return $size <= $this->allowSize * 1000 * 1000;
}
// 按日期生成目錄
protected function mk_dir() {
$dir = date('Y/m/d',time());
$dir = ROOT . 'data/p_w_picpaths/' . $dir;
if(!is_dir($dir)) {
if(!mkdir($dir,0777,true)) {
return false;
}
}
return $dir;
}
// 生成隨機文件名
protected function randName($n = 6) {
if($n <= 0) {
return '';
}
$str = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ0123456789';
$str = substr(str_shuffle($str),0,$n);
return $str;
}
public function up($name) {
// $_FILES里面有沒有$name指定的單元
if(!isset($_FILES[$name])) {
return false;
}
$f = $_FILES[$name];
// 判斷錯誤碼,是否上傳成功
if(($this->errno = $f['error']) > 0) {
return false;
}
// 判斷大小
if(!$this->checkSize($f['size'])) {
$this->errno = 8;
return false;
}
// 判斷類型
$ext = $this->getExt($f['name']);
if(!$this->checkExt($ext)) {
$this->errno = 9;
return false;
}
// 上傳,返回路徑
$path = $this->mk_dir();
if(!$path) {
$this->errno = 10;
return false;
}
$filename = $this->randName(6);
$path = $path . '/' . $filename . $ext;
if(!move_uploaded_file($f['tmp_name'],$path)) {
$this->errno = 11;
return false;
}
$path = str_replace(ROOT,'',$path);
return $path;
}
// 獲取錯誤的接口
public function getErr() {
return $this->error[$this->errno];
}
// 設置允許的后綴
public function setExt($arr) {
$this->allowExt = $arr;
}
// 設置最大上傳值
public function setSize($num=2) {
$this->allowSize = $num;
}
}
/*
define('ROOT','D:/www/0713/');
$upload = new upload();
if($path = $upload->up('pic')) {
echo $path,'<br />';
echo '上傳成功';
} else {
echo $upload->getErr();
}
*/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。