/*
多文件上传类
修改:Linvo 2008-2-15
*/
class more_file_upload{
const FILE_PATH='../upfileclass/uploadfile/';
var $file_type;
var $file_type_array;
var $file_type_real_array;
var $file_type_string;
var $file_name;
var $file_size;
var $file_tmp_name;
var $file_error;
var $handledate;
static $totalsize=0;
function __construct($file_name,$file_error,$file_size,$file_tmp_name,$file_type){
$this->handledate=date('m-d-Y');
if (!empty($file_name)){
$this->file_name = $file_name;
$this->file_error = $file_error;
$this->file_size = $file_size;
$this->file_tmp_name = $file_tmp_name;
$this->file_type = $file_type;
$this->file_type_array = array('/', 'image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png');
$this->file_type_real_array = array(0.1, 'jpg'=>74707370, 'gif'=>7173, 'bmp'=>6677, 'png'=>807871);
$this->show_execute_message($this->file_error,$this->file_name,$this->file_type,$this->file_size);
}
}
function __destruct(){
$this->file_name = NULL;
$this->file_error = NULL;
$this->file_size = NULL;
$this->file_tmp_name = NULL;
$this->file_type = NULL;
self::$totalsize = 0;
}
function show_execute_message($smfileerror,$smfilename,$smfiletype,$smfilesize){
if($smfileerror>0){
switch ($smfileerror){
case 1: $smfilemessage='文件超过服务器的约定大小!';break;
case 2: $smfilemessage='文件超过指定的文件大小!';break;
case 3: $smfilemessage='文件只上传了部分!';break;
case 4: echo "$this->file_name ".'文件上传失败!
';break;
}
self::__destruct();
}else{
$smfiletypeflag = array_search($smfiletype,$this->file_type_array);
//进行真实格式验证
if($smfiletypeflag != false){
$file = fopen($this->file_tmp_name, "rb");
$bin = fread($file, 10);
fclose($file);
$strInfo = @unpack("c10chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$smfiletypeflag = array_search($typeCode, $this->file_type_real_array);
if($smfiletypeflag == false){ //判断是否是png图片
$typeCode = intval($strInfo['chars2'].$strInfo['chars3'].$strInfo['chars4']);
$smfiletypeflag = array_search($typeCode, $this->file_type_real_array);
if($smfiletypeflag == false){ //判断是否是jpg图片
$typeCode = intval($strInfo['chars7'].$strInfo['chars8'].$strInfo['chars9'].$strInfo['chars10']);
$smfiletypeflag = array_search($typeCode, $this->file_type_real_array);
}
}
}
if($smfiletypeflag == false){
$smfilemessage='文件类型不对,请核实!';
self::__destruct();
}else{
$resflag = $this->move_file($this->file_tmp_name,$this->file_name);
if ($resflag == 1){
$smfilemessage = '文件上传成功!';
self::$totalsize += intval($smfilesize);
self::__destruct();
}else{
$smfilemessage = '文件上传失败!';
self::__destruct();
}
}
}
$smfilesizeformat = $this->size_BKM($smfilesize);
echo '
';
'.$smfilename.'
'.$smfiletype.'
'.$smfilesizeformat.'
'.$smfilemessage.'
}
function move_file($mvfiletmp,$mvfilename){ //移动文件
$mvfilenamearr = explode('.',basename($mvfilename));
$mvfilenamearr[0] = $this->rand_string();
$mvfilename = implode('.',$mvfilenamearr);
if (is_uploaded_file($mvfiletmp)){
$uploadfile = self::FILE_PATH."$mvfilename";
$result = move_uploaded_file($mvfiletmp,$uploadfile);
return $result;
}
}
function rand_string(){
$string = md5(uniqid(rand().microtime()));
return $string;
}
function size_BKM($size){ // B/KB/MB单位转换
if($size 1024)
{
$size_BKM = (string)$size . " B";
}
elseif($size 1024 * 1024))
{
$size_BKM = number_format((double)($size / 1024), 1) . " KB";
}else
{
$size_BKM = number_format((double)($size / (1024*1024)),1)." MB";
}
return $size_BKM;
}
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用