728x90
$name = $_FILES['file']['name']; //form 으로 보낸 file을 받는다.
if($name){ //file이 존재하면 실행!
$ext = explode('.', $name); //파일을 . 으로 잘라서 확장자를 담는다.
$uploadname = time().$ext[1]; //업로드할 파일명을 정한다. 뒤에 담은 확장자를 붙인다.
$uploadBase = '/uploads/'; //업로드할 경로이다.
$uploadFile = $uploadBase.$uploadname; //경로+파일명
move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile); //선택한 파일은 tmp_name의 이름으로 담긴다.
//먼저 본파일을 업로드한다.
$file = getimagesize($uploadFile); 업로드한 파일의 사이즈를 담는다.
if($file['mime'] == 'image/png'){ //파일의 확장자 별로 imagecreatefrom로 이미지를(썸네일) 생성 한다.
$image = imagecreatefrompng($uploadFile);
}else if($file['mime'] == 'image/gif'){
$image = imagecreatefromgif($uploadFile);
}else{
$image = imagecreatefromjpeg($uploadFile);
}
$thumb_path = $uploadFile; //업로드할 경로를 정한다. 위에 이미 업로드 된 파일과 같은경우 덮어쓰기가 된다.
imagejpeg($image, $thumb_path, 50); //목적은 파일 용량을 줄이는 것이기 때문에 imagejpeg로 만든다.
//(생성한 이미지 , 경로+파일명, 퀄리티)
//imagepng, imagegif 도 있다. jpeg만 세번째 파라미터로 퀄리티를 받는다.
}
이미지의 퀄리티는 줄어들지만 서버의 트래픽에 대해서는 아주 줄이는데 유용하다. 많은 자료를 찾아보았지만 너무 어렵게 되있어서 간단히 찾아서 수정을 거쳐 적어봅니다.
728x90
'Back-End > PHP' 카테고리의 다른 글
코드이그나이터 uri 값 가져오기 (0) | 2021.02.19 |
---|---|
코드이그나이터 session 사용방법 (0) | 2021.02.19 |
PHP PDO insert - lastInsertId() (0) | 2021.02.04 |