溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用php如何實現(xiàn)分類上傳文件

發(fā)布時間:2020-11-10 15:38:07 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)利用php如何實現(xiàn)分類上傳文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

具體代碼如下所示:

<&#63;php
/**
* 文件上傳類
* @author lijiamin
* @time 2017-02-17
* @email 1195989301@qq.com
*/
class Upload{
private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//限制文件上傳的后綴名
private $maxSize = 1;//限制最大文件上傳1M
/**
* 獲取文件的信息
* @param str $flag 上傳文件的標識
* @return arr 上傳文件的信息數(shù)組
*/
public function getInfo($flag){
return $_FILES[$flag];
}
/**
* 獲取文件的后綴
* @param str $filename 文件名
* @return str 文件擴展名
*/
public function getExt($filename){
return pathinfo($filename,PATHINFO_EXTENSION);
}
/**
* 檢測上傳文件是否合法
* @param str $filename 文件名
* @return bool 文件擴展名是否合法
*/
private function checkExt($filename){
$ext = $this->getExt($filename);
return in_array($ext,$this->allowExt);
}
/**
* 檢測文件大小是否超過限制
* @param int size 文件大小
* @return bool 文件大小是否超過限制
*/
public function checkSize($size){
return $size < $this->maxSize * 1024 * 1024;
}
/**
* 隨機的文件名
* @param int $len 隨機文件名的長度
* @return str 隨機字符串
*/
public function randName($len=6){
return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len);
}
/**
* 創(chuàng)建文件上傳到的路徑
* @return str 文件上傳的路徑
*/ 
public function createDir(){
//上傳文件路徑
$dir = './upload/'.date('Y/m/d',time());
//判斷文件夾是否存在,不存在則新建
if(is_dir($dir) || mkdir($dir,0777,true)){
return $dir;
}
}
/**
* 文件上傳
* @param str $flag 文件上傳標識
* @return array 返回上傳文件名、保存路徑
*/
public function uploadFile($flag){
if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){
echo "沒有上傳文件";
return;
}
$info = $this->getInfo($flag);
if(!$this->checkExt($info['name'])){
echo "不支持的文件類型";
return;
}
if(!$this->checkSize($info['size'])){
echo "文件大小超過限制";
return;
}
$filename = $this->randName().'.'.$this->getExt($info['name']);
$dir = $this->createDir();
if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename)){
echo "文件上傳失敗";
}else{
return array('filename'=>$filename,'dir'=>$dir);
}
}
}
&#63;>

關(guān)于利用php如何實現(xiàn)分類上傳文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI