檔案上傳類

2022-06-21 10:06:10 字數 3800 閱讀 7318

注:不要複製以下的**,經測試,報內有異常字元,並且定位到**檔案未尾,時有時無極不穩定,應該逐字敲入。

檔案fileupload.class.php:

<?php/**

file: fileupload.class.php檔案上傳類fileupload

本類的例項物件用於處理上傳檔案,可以上傳乙個檔案,也可同時處理多個檔案上傳

*/class

fileupload

return

$this

; }

/*** 呼叫該方法上傳檔案

* @paran : string $filefile 上傳檔案的表單名稱

* @return bool 如果上傳成功則返回true

*/public

function upload($filefield

)

//將檔案上傳的資訊取出賦給變數

$name = $_files[$filefield]['name'];

$tmp_name = $_files[$filefield]['tmp_name'];

$size = $_files[$filefield]['size'];

$error = $_files[$filefield]['error'];

//如果是多個檔案上傳,則$file["name"]會是乙個陣列

if(is_array($name

)) }

else

//如果有問題,則重新初始化屬性

if(!$return

)

$this->setfiles() ;

}if($return

)

$filenames = $this->newfilename;}}

$this->newfilename = $filenames

; }

$this->errormess = $errors

;

return

$return

;

//上傳單個檔案的處理方法

}else

else

}else

}else

//如果$return為false,則出錯,將錯誤資訊儲存在屬性errormess中

if(!$return

)

$this->errormess = $this->geterror();

return

$return

; }

}/**

* 獲取上傳後的檔名稱

* @param void 沒有引數

* @return string 上傳後,新檔案的名稱,如果是多檔案上傳則返回陣列

*/public

function

getfilename()

/***上傳失敗後,呼叫該方法則返回,上傳出錯資訊

* @param void沒有引數

* @return string 返回上傳檔案出錯的資訊報告,如果是多檔案上傳則返回陣列

*/public

function

geterrormsg()

/*設定上傳出錯資訊

*/private

function

geterror()時出錯:";

switch($this->errornum) 個位元組"; break

;

case -3: $str .= "上傳失敗"; break

;

case -4: $str .= "建立存放上傳檔案目錄失敗,請重新指定上傳目錄"; break

;

case -5: $str .= "必須指定上傳檔案的路徑"; break

;

default: $str .= "未知錯誤";

}return

$str. '

'; }

/*設定和$_ files有關的內容

*/private

function setfiles($name = '', $tmp_name = '', $size = 0, $error = 0)

/*為單個成員屬性設定值

*/private

function setoption($key, $val

)

/*設定上傳後的檔名稱

*/private

function

setnewfilename()else

}/*檢查上傳的檔案是否是合法的型別

*/private

function

checkfiletype()

else

}/*檢查上傳的檔案是否是允許的大小

*/private

function

checkfilesize()

else

}/*檢查是否有存放上傳檔案的目錄

*/private

function

checkfilepath()

if (!file_exists($this->path) || !is_writable($this->path))

}return

true

; }

/*設定隨機檔名

*/private

function

prorandname()

/*複製上傳檔案到指定的位置

*/private

function

copyfile()

else

}else

}}

應用:

1.前端單檔案:file.php

後端**:upload.php

<?php/**

file: upload.php

使用檔案上傳類fileipload,處理單個和多個檔案上傳

*/require "fileupload.class.php"; //

載入檔案上傳類

$up = new fileupload; //

例項化檔案上傳物件

//可以通過set()方法設定上傳的屬性,可以設定多個屬性。set() 方法可以單獨呼叫,也可以連貫操作一起呼叫多個

$up->set('path', './newpath/') //

可以自己設定上傳檔案儲存的路徑

->set('size', 1000000) //

可以自已限制上傳檔案的大小

可以自己限制上傳檔案的型別

->set('israndname', false); //

可以使用原檔名,不讓系統命名*/

//呼叫$up物件的upload()方法上傳檔案, myfile是表單的名稱,上傳成功返回true,否則返回ralse

if( $up->upload('myfile') )

else

檔案上傳類

file fileupload.class.php 檔案上傳類fileupload 本類的例項物件用於處理上傳檔案,可以上傳乙個檔案,也可同時處理多個檔案上傳 class fileupload return this 呼叫該方法上傳檔案 param string filefile 上傳檔案的表單名稱...

檔案上傳類

檔案上傳類 成員屬性有 需要初始化的成員 檔案上傳路徑,允許上傳字尾,允許上傳的mime,允許上傳的檔案大小,是否啟用隨即名,加上檔案字首,自定義的錯誤號碼和錯誤資訊 要儲存的檔案資訊 檔名,檔案字尾,檔案大小,檔案mime,檔案臨時名 對外公開的方法 uploadfile key 上傳成功返回檔案...

多檔案上傳類

多檔案上傳類 修改 linvo 2008 2 15 class more file upload function destruct function show execute message fileerror,filename,filetype,filesize self destruct el...