天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP5+UTF8多文件上傳類

還有些功能沒有加上去,如自動(dòng)更名,圖片處理等.可根據(jù)需要自己添加.
USE:
$up = new upfile(ROOT_PATH.'data/'.date("Ym",time()),array('gif','jpg','jpeg'),true);
$fileimg = $up->upload($_FILES['img']);//返回上傳后文件名數(shù)組,$_FILES['img']為上傳的文件
可使用$up->log查看上傳時(shí)信息.
<?php
//====================================================
// FileName: upfile.class.php
// Summary: 文件上傳類
// Author: millken(迷路林肯)
// LastModifed: 2008-6-4
// copyright (c)2008 millken@gmail.com
//====================================================
if(!defined('OK'))exit(__FILE__.'Access Denied');
class upfile {
public $ExtensionFileFormat = array();
public $returninfo = array();
private $ImageFileFormat = array('gif','bmp','jpg','jpe','jpeg','png');
private $OtherFileFormat = array('zip','pdf','rar','xls','doc','ppt','csv');
private $savePath;
private $attachment_path = './upfiles/';
private $overwrite = false; # 同名時(shí)是否覆蓋
private $maxSize = 0; # 文件最大字節(jié),為0時(shí)不限制大小
private $ext;
private $errno = 0;
/* 構(gòu)造函數(shù)
* (string)$savePath 文件保存路徑,默認(rèn)為$attachment_path
* (array)$extensionFileFormat 自定義上傳文件的擴(kuò)展名,未設(shè)置時(shí)為$ImageFileFormat || $OtherFileFormat
* (bool)$overwrite 是否覆蓋同名文件
*/
public function __construct($savePath='',$extensionFileFormat = array(),$overwrite = false) {
$this->savePath = empty($savePath)?$this->attachment_pathsavePath.'/';
$this->extensionFileFormat = is_array($extensionFileFormat)?$extensionFileFormat:array();
$this->overwrite = is_bool($overwrite)?$overwrite:false;
}
/*上傳函數(shù)
* (array)$files 待上傳的文件數(shù)組$_FILES['attach']
* (number)$maxSize 文件的最大字節(jié)數(shù),默認(rèn)為0不限制上傳大小
*/
public function upload($files,$maxSize=0) {
$this->maxSize = is_numeric($maxSize)?$maxSize:0;
if(isset($files) && is_array($files)) {
if(is_array($files['name'])) {
foreach($files as $key => $var) {
foreach($var as $id => $val) {
$attachments[$id][$key] = $val;
}
}
} else {
$attachments[] = $files;
}
}
self::check_file_type($attachments);
if(empty($this->filelist)) {
$this->log .= "待上傳的文件列表為空。/n";
return array();
}
if(!self::makeDirectory() || !@is_writable($this->savePath)) {
$this->log .= $this->savePath . "不能創(chuàng)建或其權(quán)限為不可寫。/n";
return array();
}
$filearray = array();
foreach($this->filelist as $k=>$f) {
if($this->maxSize && $f['size']>$this->maxSize) {
$this->log .= $f['name'] . "其大小超過了設(shè)定的值:" . $this->maxSize ."/n";
}elseif($this->overwrite == false && file_exists($this->savePath . $f['name'])) {
$this->log .= $f['name'] . "已經(jīng)存在于目錄:" . $this->savePath . "/n";
}else{
@unlink($this->savePath . $f['name']);
if(@move_uploaded_file($f['tmp_name'],$this->savePath . mb_convert_encoding($f['name'],'gbk','utf-8'))) {//如果不進(jìn)行編碼轉(zhuǎn)換,中文將無法支持
$this->log .= $f['name'] . "成功上傳到目錄:". $this->savePath ."/n";
$filearray[$k] = $this->savePath . $f['name'];
}else{
$this->log .= $f['name'] . "上傳失敗。/n";
}
}
}
return $filearray;
}
/*檢測(cè)文件的類型
*(array)$files 文件數(shù)組
*/
private function check_file_type($files) {
$this->filelist = array();
foreach($files as $key=>$file) {
if($file['error'] == 0) {
$ext = strtolower(substr($file['name'], strrpos($file['name'], '.') + 1));
$str = @file_get_contents($file['tmp_name'],FALSE,NULL,0,20);
if((in_array($ext,array('jpg','jpeg')) && substr($str ,0, 3) !== "/xFF/xD8/xFF") || ($ext == 'gif' && substr($str ,0, 4) !== 'GIF8') || ($ext == 'png' && substr($str ,0, 8) !== "/x89/x50/x4E/x47/x0D/x0A/x1A/x0A") || ($ext == 'bmp' && substr($str ,0, 2) !== 'BM') || ($ext == 'swf' && (substr($str ,0, 3) !== 'CWS' || substr($str ,0, 3) !== 'FWS')) || ($ext == 'zip' && substr($str ,0, 4) !== "PK/x03/x04") || ($ext == 'rar' && substr($str ,0, 4) !== 'Rar!') || ($ext == 'pdf' && substr($str ,0, 4) !== "/x25PDF") || ($ext == 'chm' && substr($str ,0, 4) !== 'ITSF') || ($ext == 'rm' && substr($str ,0, 4) !== "/x2ERMF") || ($ext == 'exe' && substr($str ,0, 2) !== "MZ") || (in_array($ext,array('doc','xls','ppt')) && substr($str ,0, 4) !== "/xD0/xCF/x11/xE0")) {
$this->log .= $file['name'] . "文件類型與文件內(nèi)容不符合。/n";
}elseif((!empty($this->extensionFileFormat) && in_array($ext,$this->extensionFileFormat)) || (empty($this->extensionFileFormat) && (in_array($ext,$this->ImageFileFormat) || in_array($ext,$this->OtherFileFormat)))) {
$this->filelist[$key] = $file;
}else{
$this->log .= $file['name'] . "不符合上傳文件的類型。/n";
@unlink($file['tmp_name']);
}
}
}
}
/*生成上傳目錄
*
*/
private function makeDirectory() {
$directoryName = str_replace("http://","/", $this->savePath);
$dirNames = explode('/', $directoryName);
$total = count($dirNames);
$temp = '';
for($i=0; $i<$total; $i++)
{
$temp .= $dirNames[$i].'/';
if (!is_dir($temp))
{
$oldmask = @umask(0);
if (!@mkdir($temp, 0777)) return false;
@umask($oldmask);
}
};
if(is_dir($this->savePath)) {
return true;
} else {
return false;
};
}
}
?>

php技術(shù)PHP5+UTF8多文件上傳類,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 高h乱np甄宓 | 亚洲视频在线观看不卡 | 亚欧视频在线观看 | videossexo乌克兰 | 日日啪在线影院百度 | 九九热精品视频在线观看 | 国产精品一区二区免费 | 国产精片久久久久久婷婷 | 亚洲国产AV精品卡一卡二 | 女性私密五月天 | 国产A级毛片久久久久久久 国产a级黄色毛片 | 国产AV精品久久久毛片 | 国产精品永久免费视频观看 | 邻家美姨在线观看全集免费 | 国产成人免费a在线视频app | 亚洲风情无码免费视频 | 99热免费精品店 | 又黄又猛又爽大片免费 | 5G在线观看免费年龄确认18 | 精品国产乱码久久久人妻 | 美女视频黄a视频全免费网站色窝 | 亚洲熟妇无码乱子AV电影 | 91区国产福利在线观看午夜 | 奶头好翘是不是想要了 | 成人在线高清不卡免费视频 | 嘟嘟嘟影院免费观看视频 | 视频一区视频二区在线观看 | 国产精品亚洲AV色欲在线观看 | 久久天天婷婷五月俺也去 | 久久精品视在线观看85 | 桃隐社区最新最快地址 | 潮 喷女王cytherea | 暖暖直播免费观看韩国 | 美目盼兮amy198281 | gogo亚洲肉体艺术照片9090 | 亚洲精品成人a在线观看 | 日韩伦理电影秋霞影院 | 国产精品俺来也在线观看 | 511麻豆视传媒精品AV | 男生脱美女内裤内衣动态图 | 亲嘴扒胸摸屁股视频免费网站 |