第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

哪位小伙伴有老師視頻中講到的class_upload.php上傳文件的那個類庫???

哪位小伙伴有老師視頻中講到的class_upload.php上傳文件的那個類庫???

正在回答

1 回答

git.oschina.com去下載啊

<?php
??/**?
??*??file:?fileupload.class.php?文件上傳類FileUpload
??*??本類的實(shí)例對象用于處理上傳文件,可以上傳一個文件,也可同時處理多個文件上傳
??*/
??class?FileUpload?{?
????private?$path?=?"";??????????//上傳文件保存的路徑
????private?$allowtype?=?array('jpg','gif','png');?//設(shè)置限制上傳文件的類型
????private?$maxsize?=?1000000;???????????//限制文件上傳大小(字節(jié))
????private?$israndname?=?true;???????????//設(shè)置是否隨機(jī)重命名文件,?false不隨機(jī)
??
????private?$originName;??????????????//源文件名
????private?$tmpFileName;??????????????//臨時文件名
????private?$fileType;???????????????//文件類型(文件后綴)
????private?$fileSize;???????????????//文件大小
????private?$newFileName;??????????????//新文件名
????private?$errorNum?=?0;?????????????//錯誤號
????private?$errorMess="";?????????????//錯誤報告消息
??
????/**
?????*?用于設(shè)置成員屬性($path,?$allowtype,$maxsize,?$israndname)
?????*?可以通過連貫操作一次設(shè)置多個屬性值
?????*@param??string?$key??成員屬性名(不區(qū)分大小寫)
?????*@param??mixed??$val??為成員屬性設(shè)置的值
?????*@return??object?????返回自己對象$this,可以用于連貫操作
?????*/
????function?set($key,?$val){
??????$key?=?strtolower($key);?
??????if(?array_key_exists(?$key,?get_class_vars(get_class($this)?)?)?){
????????$this->setOption($key,?$val);
??????}
??????return?$this;
????}
??
????/**
?????*?調(diào)用該方法上傳文件
?????*?@param??string?$fileFile??上傳文件的表單名稱?
?????*?@return?bool????????如果上傳成功返回數(shù)true?
?????*/
??
????function?upload($fileField)?{
??????$return?=?true;
??????/*?檢查文件路徑是滯合法?*/
??????if(?!$this->checkFilePath()?)?{???????
????????$this->errorMess?=?$this->getError();
????????return?false;
??????}
??????/*?將文件上傳的信息取出賦給變量?*/
??????$name?=?$_FILES[$fileField]['name'];
??????$tmp_name?=?$_FILES[$fileField]['tmp_name'];
??????$size?=?$_FILES[$fileField]['size'];
??????$error?=?$_FILES[$fileField]['error'];
??
??????/*?如果是多個文件上傳則$file["name"]會是一個數(shù)組?*/
??????if(is_Array($name)){????
????????$errors=array();
????????/*多個文件上傳則循環(huán)處理?,?這個循環(huán)只有檢查上傳文件的作用,并沒有真正上傳?*/
????????for($i?=?0;?$i?<?count($name);?$i++){?
??????????/*設(shè)置文件信息?*/
??????????if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i]?))?{
????????????if(!$this->checkFileSize()?||?!$this->checkFileType()){
??????????????$errors[]?=?$this->getError();
??????????????$return=false;?
????????????}
??????????}else{
????????????$errors[]?=?$this->getError();
????????????$return=false;
??????????}
??????????/*?如果有問題,則重新初使化屬性?*/
??????????if(!$return)??????????
????????????$this->setFiles();
????????}
??
????????if($return){
??????????/*?存放所有上傳后文件名的變量數(shù)組?*/
??????????$fileNames?=?array();??????
??????????/*?如果上傳的多個文件都是合法的,則通過銷魂循環(huán)向服務(wù)器上傳文件?*/
??????????for($i?=?0;?$i?<?count($name);?$i++){?
????????????if($this->setFiles($name[$i],?$tmp_name[$i],?$size[$i],?$error[$i]?))?{
??????????????$this->setNewFileName();?
??????????????if(!$this->copyFile()){
????????????????$errors[]?=?$this->getError();
????????????????$return?=?false;
??????????????}
??????????????$fileNames[]?=?$this->newFileName;??
????????????}??????????
??????????}
??????????$this->newFileName?=?$fileNames;
????????}
????????$this->errorMess?=?$errors;
????????return?$return;
??????/*上傳單個文件處理方法*/
??????}?else?{
????????/*?設(shè)置文件信息?*/
????????if($this->setFiles($name,$tmp_name,$size,$error))?{
??????????/*?上傳之前先檢查一下大小和類型?*/
??????????if($this->checkFileSize()?&&?$this->checkFileType()){?
????????????/*?為上傳文件設(shè)置新文件名?*/
????????????$this->setNewFileName();?
????????????/*?上傳文件??返回0為成功,?小于0都為錯誤?*/
????????????if($this->copyFile()){?
??????????????return?true;
????????????}else{
??????????????$return=false;
????????????}
??????????}else{
????????????$return=false;
??????????}
????????}?else?{
??????????$return=false;?
????????}
????????//如果$return為false,?則出錯,將錯誤信息保存在屬性errorMess中
????????if(!$return)
??????????$this->errorMess=$this->getError();??
??
????????return?$return;
??????}
????}
??
????/**?
?????*?獲取上傳后的文件名稱
?????*?@param??void???沒有參數(shù)
?????*?@return?string?上傳后,新文件的名稱,?如果是多文件上傳返回數(shù)組
?????*/
????public?function?getFileName(){
??????return?$this->newFileName;
????}
??
????/**
?????*?上傳失敗后,調(diào)用該方法則返回,上傳出錯信息
?????*?@param??void???沒有參數(shù)
?????*?@return?string??返回上傳文件出錯的信息報告,如果是多文件上傳返回數(shù)組
?????*/
????public?function?getErrorMsg(){
??????return?$this->errorMess;
????}
??
????/*?設(shè)置上傳出錯信息?*/
????private?function?getError()?{
??????$str?=?"上傳文件<font?color='red'>{$this->originName}</font>時出錯?:?";
??????switch?($this->errorNum)?{
????????case?4:?$str?.=?"沒有文件被上傳";?break;
????????case?3:?$str?.=?"文件只有部分被上傳";?break;
????????case?2:?$str?.=?"上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項(xiàng)指定的值";?break;
????????case?1:?$str?.=?"上傳的文件超過了php.ini中upload_max_filesize選項(xiàng)限制的值";?break;
????????case?-1:?$str?.=?"未允許類型";?break;
????????case?-2:?$str?.=?"文件過大,上傳的文件不能超過{$this->maxsize}個字節(jié)";?break;
????????case?-3:?$str?.=?"上傳失敗";?break;
????????case?-4:?$str?.=?"建立存放上傳文件目錄失敗,請重新指定上傳目錄";?break;
????????case?-5:?$str?.=?"必須指定上傳文件的路徑";?break;
????????default:?$str?.=?"未知錯誤";
??????}
??????return?$str.'<br>';
????}
??
????/*?設(shè)置和$_FILES有關(guān)的內(nèi)容?*/
????private?function?setFiles($name="",?$tmp_name="",?$size=0,?$error=0)?{
??????$this->setOption('errorNum',?$error);
??????if($error)
????????return?false;
??????$this->setOption('originName',?$name);
??????$this->setOption('tmpFileName',$tmp_name);
??????$aryStr?=?explode(".",?$name);
??????$this->setOption('fileType',?strtolower($aryStr[count($aryStr)-1]));
??????$this->setOption('fileSize',?$size);
??????return?true;
????}
??
????/*?為單個成員屬性設(shè)置值?*/
????private?function?setOption($key,?$val)?{
??????$this->$key?=?$val;
????}
??
????/*?設(shè)置上傳后的文件名稱?*/
????private?function?setNewFileName()?{
??????if?($this->israndname)?{
????????$this->setOption('newFileName',?$this->proRandName());??
??????}?else{?
????????$this->setOption('newFileName',?$this->originName);
??????}?
????}
??
????/*?檢查上傳的文件是否是合法的類型?*/
????private?function?checkFileType()?{
??????if?(in_array(strtolower($this->fileType),?$this->allowtype))?{
????????return?true;
??????}else?{
????????$this->setOption('errorNum',?-1);
????????return?false;
??????}
????}
??
????/*?檢查上傳的文件是否是允許的大小?*/
????private?function?checkFileSize()?{
??????if?($this->fileSize?>?$this->maxsize)?{
????????$this->setOption('errorNum',?-2);
????????return?false;
??????}else{
????????return?true;
??????}
????}
??
????/*?檢查是否有存放上傳文件的目錄?*/
????private?function?checkFilePath()?{
??????if(empty($this->path)){
????????$this->setOption('errorNum',?-5);
????????return?false;
??????}
??????if?(!file_exists($this->path)?||?!is_writable($this->path))?{
????????if?(!@mkdir($this->path,?0755))?{
??????????$this->setOption('errorNum',?-4);
??????????return?false;
????????}
??????}
??????return?true;
????}
??
????/*?設(shè)置隨機(jī)文件名?*/
????private?function?proRandName()?{????
??????$fileName?=?date('YmdHis')."_".rand(100,999);????
??????return?$fileName.'.'.$this->fileType;?
????}
??
????/*?復(fù)制上傳文件到指定的位置?*/
????private?function?copyFile()?{
??????if(!$this->errorNum)?{
????????$path?=?rtrim($this->path,?'/').'/';
????????$path?.=?$this->newFileName;
????????if?(@move_uploaded_file($this->tmpFileName,?$path))?{
??????????return?true;
????????}else{
??????????$this->setOption('errorNum',?-3);
??????????return?false;
????????}
??????}?else?{
????????return?false;
??????}
????}
??}

拿走不謝

2 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

哪位小伙伴有老師視頻中講到的class_upload.php上傳文件的那個類庫???

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號