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

php上傳文件分類實(shí)例代碼

 更新時(shí)間:2017年02月17日 11:17:41   作者:李佳敏  
這篇文章主要介紹了php上傳文件分類實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

<?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 上傳文件的標(biāo)識
* @return arr 上傳文件的信息數(shù)組
*/
public function getInfo($flag){
return $_FILES[$flag];
}
/**
* 獲取文件的后綴
* @param str $filename 文件名
* @return str 文件擴(kuò)展名
*/
public function getExt($filename){
return pathinfo($filename,PATHINFO_EXTENSION);
}
/**
* 檢測上傳文件是否合法
* @param str $filename 文件名
* @return bool 文件擴(kuò)展名是否合法
*/
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;
}
/**
* 隨機(jī)的文件名
* @param int $len 隨機(jī)文件名的長度
* @return str 隨機(jī)字符串
*/
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 文件上傳標(biāo)識
* @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);
}
}
}
?>

相關(guān)文章

  • SpringMVC使用MultipartFile實(shí)現(xiàn)文件上傳

    SpringMVC使用MultipartFile實(shí)現(xiàn)文件上傳

    這篇文章主要為大家詳細(xì)介紹了SpringMVC使用MultipartFile實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Spring容器中已經(jīng)存在的Bean替換示例

    Spring容器中已經(jīng)存在的Bean替換示例

    這篇文章主要為大家介紹了Spring容器中已經(jīng)存在的Bean替換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Java實(shí)現(xiàn)直接插入排序與折半插入排序的示例詳解

    Java實(shí)現(xiàn)直接插入排序與折半插入排序的示例詳解

    這篇文章主要為大家詳細(xì)介紹了插入排序中兩個(gè)常見的排序:直接插入排序與折半插入排序。本文用Java語言實(shí)現(xiàn)了這兩個(gè)排序算法,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • mybatis的ParamNameResolver參數(shù)名稱解析

    mybatis的ParamNameResolver參數(shù)名稱解析

    這篇文章主要為大家介紹了mybatis的ParamNameResolver參數(shù)名稱解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 詳解Spring boot使用Redis集群替換mybatis二級緩存

    詳解Spring boot使用Redis集群替換mybatis二級緩存

    本篇文章主要介紹了詳解Spring boot使用Redis集群替換mybatis二級緩存,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Spring中@Configuration注解的Full模式和Lite模式詳解

    Spring中@Configuration注解的Full模式和Lite模式詳解

    這篇文章主要介紹了Spring中@Configuration注解的Full模式和Lite模式詳解,準(zhǔn)確來說,Full?模式和?Lite?模式其實(shí)?Spring?容器在處理?Bean?時(shí)的兩種不同行為,這兩種不同的模式在使用時(shí)候的表現(xiàn)完全不同,今天就來和各位小伙伴捋一捋這兩種模式,需要的朋友可以參考下
    2023-09-09
  • MyBatis-Plus中通用枚舉的實(shí)現(xiàn)

    MyBatis-Plus中通用枚舉的實(shí)現(xiàn)

    表中的有些字段值是固定的此時(shí)我們可以使用MyBatis-Plus的通用枚舉來實(shí)現(xiàn),本文主要介紹了MyBatis-Plus中通用枚舉的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Java多線程并發(fā)之ReentrantLock

    Java多線程并發(fā)之ReentrantLock

    這篇文章主要介紹了Java?多線程并發(fā)ReentrantLock,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2023-04-04
  • Java中zip的壓縮和解壓縮的實(shí)現(xiàn)代碼

    Java中zip的壓縮和解壓縮的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java中zip的壓縮和解壓縮的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • SpringBoot中的@Inherited注解詳解

    SpringBoot中的@Inherited注解詳解

    這篇文章主要介紹了SpringBoot中的@Inherited注解詳解,@Inherited是一個(gè)標(biāo)識,用來修飾注解,如果一個(gè)類用上了@Inherited修飾的注解,那么其子類也會繼承這個(gè)注解,需要的朋友可以參考下
    2023-08-08

最新評論

舒城县| 梅州市| 东乡县| 福泉市| 温州市| 肥东县| 正安县| 南召县| 丹寨县| 高雄县| 荔浦县| 云梦县| 鄂尔多斯市| 辽阳县| 上犹县| 延川县| 渭源县| 青河县| 常宁市| 密山市| 大竹县| 霍林郭勒市| 长汀县| 武定县| 交口县| 白山市| 汝城县| 绥阳县| 宜昌市| 繁峙县| 济阳县| 察哈| 新民市| 莱芜市| 碌曲县| 乐亭县| 新河县| 游戏| 保德县| 新巴尔虎左旗| 德兴市|