ホームページ > バックエンド開発 > PHPチュートリアル > PHP 複数ファイルのアップロード クラス_PHP チュートリアル

PHP 複数ファイルのアップロード クラス_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:23:09
オリジナル
912 人が閲覧しました

PHP多文件上传类

PHP多文件上传类

/*

多文件上传类

修正: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;

静的 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);

}

}

関数__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){

スイッチ(smfileerror){

ケース 1: smfilemessage='文件超过服务器の约定大小!';break;

ケース 2: smfilemessage='文件超过指定の文件大!';break;

ケース 3: smfilemessage='文件只上传了部分!';break;

ケース 4: echo "this->file_name ".'文件上传失败!
';休憩;

}

self::__destruct();

}その他{

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();

}その他{

resflag = this->move_file(this->file_tmp_name,this->file_name);

if (resflag == 1){

smfilemessage = '文件上传成功!';

self::totalsize += intval(smfilesize);

self::__destruct();

}その他{

smfilemessage = '文件上传失败!';

self::__destruct();

}

}

}

smfilesizeformat = this->size_BKM(smfilesize);

エコー

「.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";

結果 = move_uploaded_file(mvfiletmp,uploadfile);

結果を返す;

}

}

関数 rand_string(){

string = md5(uniqid(rand().microtime()));

文字列を返す;

}

function size_BKM(size){ // B/KB/MB单位转换

if(サイズ

{

size_BKM = (文字列)size .

}

elseif(size

{

size_BKM =number_format((double)(size / 1024), 1) .

}その他

{

size_BKM =number_format((double)(size / (1024*1024)),1)." MB";

}

size_BKM を返す;

}

}

http://www.bkjia.com/PHPjc/845129.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/845129.html技術記事 PHP マルチファイル アップロード クラス PHP マルチファイル アップロード クラス/* マルチファイル アップロード クラス変更: Linvo 2008-2-15 */ class more_file_upload{ const FILE_PATH='../upfileclass/uploadfile/'; ..
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート