最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP多文件上傳類實(shí)例

 更新時(shí)間:2015年03月07日 11:09:50   作者:瘋狂的流浪  
這篇文章主要介紹了PHP多文件上傳類,實(shí)例分析了php實(shí)現(xiàn)多文件上傳的原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了PHP多文件上傳類。分享給大家供大家參考。具體如下:

復(fù)制代碼 代碼如下:
<?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;
    var $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;
    $this->$totalsize = 0;
}
 
function show_execute_message($smfileerror,$smfilename,$smfiletype,$smfilesize){
if($smfileerror>0){
    switch ($smfileerror){
    case 1: $smfilemessage='<strong>文件超過(guò)服務(wù)器的約定大??!</strong>';break;
    case 2: $smfilemessage ='<strong>文件超過(guò)指定的文件大??!</strong>';break;
    case 3: $smfilemessage='<strong>文件只上傳了部分!</strong>';break;
    case 4: echo "$this->$file_name ".'文件上傳失?。?lt;br/>';break;
    }
    self::__destruct();
}else{
    $smfiletypeflag = array_search($smfiletype,$this->$file_type_array);
 
//進(jìn)行真實(shí)格式驗(yàn)證
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='<strong>文件類型不對(duì),請(qǐng)核實(shí)!</strong>';
self::__destruct();
}else{
$resflag = $$this->move_file($$this->$file_tmp_name,$this->$file_name);
if ($resflag == 1){
$smfilemessage = '文件上傳成功!';
$this->totalsize +=  intval($smfilesize);
self::__destruct();
}else{
$smfilemessage = '<strong>文件上傳失??!</strong>';
self::__destruct();
}
}
}
 
$$smfilesizeformat = $this->size_BKM($smfilesize);
echo '<tr>
<td align="left" >'.$smfilename.'</td>
<td align="center" >'.$smfiletype.'</td>
<td align="center" >'.$smfilesizeformat.'</td>
<td align="center" >'.smfilemessage.'</td>
</tr>';
}
 
function move_file($mvfiletmp,$mvfilename){ //移動(dòng)文件
$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單位轉(zhuǎn)換
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;
}
}
?>

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP自動(dòng)選擇 連接本地還是遠(yuǎn)程數(shù)據(jù)庫(kù)

    PHP自動(dòng)選擇 連接本地還是遠(yuǎn)程數(shù)據(jù)庫(kù)

    假設(shè)我們要在test.php文件中操作虛擬主機(jī)的數(shù)據(jù)庫(kù),則首先要在本地調(diào)試,那么必然要連接本地、遠(yuǎn)程兩個(gè)不同的數(shù)據(jù)庫(kù),問(wèn)題:怎么讓test.php自動(dòng)識(shí)別當(dāng)下該連接本地還是遠(yuǎn)程數(shù)據(jù)庫(kù)呢?
    2010-12-12
  • 關(guān)于Zend Studio 配色方案插件的介紹

    關(guān)于Zend Studio 配色方案插件的介紹

    本篇文章是對(duì)Zend Studio 配色方案插件的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php打造屬于自己的MVC框架

    php打造屬于自己的MVC框架

    本篇先介紹一下php的MVC實(shí)現(xiàn)原理,我們框架的MVC部分也是基于此原理實(shí)現(xiàn)的,但是今天的代碼并不是框架內(nèi)的代碼,僅僅為說(shuō)明原理
    2012-03-03
  • 基于simple_html_dom的使用小結(jié)

    基于simple_html_dom的使用小結(jié)

    本篇文章對(duì)simple html dom的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • php小技巧之過(guò)濾ascii控制字符

    php小技巧之過(guò)濾ascii控制字符

    分享一個(gè)小技巧,在PHP中如何過(guò)濾ascii控制字符,需要的朋友可以參考下
    2014-05-05
  • PHP 防注入函數(shù)(格式化數(shù)據(jù))

    PHP 防注入函數(shù)(格式化數(shù)據(jù))

    下面的函數(shù)通過(guò)格式化數(shù)據(jù)的方法實(shí)現(xiàn)數(shù)據(jù)的addslashes,不過(guò)也建議大家參考下discuz的防注入函數(shù)。
    2011-08-08
  • PHP函數(shù)nl2br()與自定義函數(shù)nl2p()換行用法分析

    PHP函數(shù)nl2br()與自定義函數(shù)nl2p()換行用法分析

    這篇文章主要介紹了PHP函數(shù)nl2br()與自定義函數(shù)nl2p()換行用法,結(jié)合實(shí)例形式分析PHP函數(shù)nl2br實(shí)現(xiàn)換行功能的優(yōu)缺點(diǎn)及自定義函數(shù)nl2p換行功能的使用技巧,需要的朋友可以參考下
    2016-04-04
  • PHP的命令行擴(kuò)展Readline相關(guān)函數(shù)的使用

    PHP的命令行擴(kuò)展Readline相關(guān)函數(shù)的使用

    PHP 作為一個(gè) Web 開發(fā)語(yǔ)言,相對(duì)來(lái)說(shuō),命令行程序并不是它的主戰(zhàn)場(chǎng)。所以很多年輕的 PHP 開發(fā)者可能連命令行腳本都沒有寫過(guò),更別提交互式的命令操作了。而今天,我們帶來(lái)的這個(gè)擴(kuò)展就是針對(duì) PHP 的交互式命令行操作的
    2021-05-05
  • php Xdebug的安裝與使用詳解

    php Xdebug的安裝與使用詳解

    本篇文章是對(duì)php Xdebug的安裝與使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 學(xué)習(xí)php開源項(xiàng)目的源碼指南

    學(xué)習(xí)php開源項(xiàng)目的源碼指南

    這篇文章主要介紹了學(xué)習(xí)php開源項(xiàng)目的源碼指南,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

韩城市| 西畴县| 广州市| 绥芬河市| 桦南县| 新津县| 库车县| 通州区| 长治市| 洪泽县| 普陀区| 平谷区| 南华县| 青州市| 黎川县| 庆安县| 金昌市| 巫溪县| 孟津县| 延吉市| 丰镇市| 顺义区| 峨眉山市| 嘉鱼县| 鹰潭市| 福建省| 电白县| 松阳县| 伊通| 湘潭县| 缙云县| 自治县| 连城县| 阿克苏市| 西平县| 阳城县| 九龙县| 西丰县| 尼玛县| 浑源县| 友谊县|