멀티 첨부파일 업로드
$file_obj = "attachments";
$uploadDirectory = ROOT_PATH."/_images/profilePhoto/";
$fileType = array ("application/x-msdownload", "text/html", "text/htm", "application/octet-stream" );//.exe, .html, .htm, .php
//첨부파일 업로드
printf($af->multiFileUpload($file_obj, $uploadDirectory, $fileType, $af));
//멀티 파일을 서버로 업로드 한다.
function multiFileUpload($file_obj, $uploadDirectory, $fileType, $obj)
{
$message = "";
//파일 객체가 전송되었는지 확인
if(isset($_FILES[$file_obj]))
{
//전송된 파일의 객체 만큼 반복하면서
foreach ($_FILES[$file_obj]["error"] as $key => $error)
{
//오류 없이 파일이 서버로 업로드 되었다면
if ($error == UPLOAD_ERR_OK)
{
$this->obj = $_FILES[$file_obj][$key];
$this->error = $_FILES[$file_obj]["error"][$key];
$this->type = $_FILES[$file_obj]["type"][$key];
$this->tmp = $_FILES[$file_obj]["tmp_name"][$key];
$this->name = $_FILES[$file_obj]["name"][$key];
$this->size = $_FILES[$file_obj]["size"][$key];
//파일의 확장자를 확인한 후
if (!in_array($this->type, $fileType))
{
//파일을 서버로 업로드 한다.
if(move_uploaded_file ($this->tmp, $uploadDirectory.$this->name))
{
$this->uploadResult = true;
}
////임시파일이 존재하는 경우 삭제
if (file_exists ($this->tmp) && is_file($this->tmp) )
{
unlink ($this->tmp);
}
}
else
{
$message = "[".$this->type."] 확장자는 업로드 할 수 없습니다.!";
}
}
else
{
$message = $obj->getErrorMessage($error);
}
}
}
return $message;
}
//파일을 서버로 업로드시 발생한 오류 메세지를 얻는다.
function getErrorMessage($error)
{
switch ($error)
{
case 1:
$message = "php.ini 파일의 upload_max_filesize 설정값을 초과함(업로드 최대용량 초과)";
break;
case 2:
$message = "Form에서 설정된 MAX_FILE_SIZE 설정값을 초과함(업로드 최대용량 초과)";
break;
case 3:
$message = "파일 일부만 업로드 됨";
break;
case 4:
$message = "업로드된 파일이 없음";
break;
case 6:
$message = "사용가능한 임시폴더가 없음";
break;
case 7:
$message = "디스크에 저장할수 없음";
break;
case 8:
$message = "파일 업로드가 중지됨";
break;
default:
$message = "시스템 오류가 발생";
break;
}
return $message;
}