English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

php 파일 업로드 분류 예제 코드

말이 많지 않도록, 바로 코드를 제공하겠습니다. 구체적인 코드는 다음과 같습니다:

<?php
/**
* 파일 업로드 클래스
* @author lijiamin
* @time 2017-02-17
* @email [email protected]
*/
class Upload{
private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//파일 업로드 확장자 제한
private $maxSize = 1;//최대 파일 업로드 제한1M
/**
* 파일의 정보를 얻습니다
* @param str $flag 업로드 파일의 식별자
* @return arr 업로드 파일의 정보 배열
*/
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);
}
/**
* 파일 업로드 위치를 생성합니다
* @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);
}
}
}
?>

성명: 본 내용은 인터넷에서 가져왔으며, 저작권은 원저자에게 있으며, 인터넷 사용자가 자발적으로 기여하고 자체로 업로드한 내용입니다. 본 웹사이트는 소유권을 가지지 않으며, 인공 편집을 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 문제가 있는 내용을 발견하시면 notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 (이메일 작성 시 #을 @으로 변경하십시오) 신고하시고 관련 증거를 제공하시면, 해당 내용이 사실이 확인되면 즉시 해당 내용을 삭제하겠습니다.

좋아하는 것