파일 확장자 검사 함수 입니다.
만일 스크립트 파일을 확장자를 이미지 확장자로 바꾼다할 지라도 유효성 검사에서 실패하겠죠.
function validate_ext($file, $ext="gif")
{
$ext = strtolower($ext);
if (!in_array($ext, array('jpg', 'jpeg', 'png', 'gif', 'zip'))) {
return false;
}
if ($fp = fopen($file, 'rb')) {
$contents = base64_encode(fread($fp, 30));
fclose($fp);
switch ($ext) {
case 'jpeg':
case 'jpg': $pattern = "/^\/9j\/4AAQSkZJRgABA/"; break;
case 'png': $pattern = "/^iVBORw0KGgoAAAANSUhEUgAAA/"; break;
case 'gif': $pattern = "/^R0lGODlh/"; break;
case 'zip': $pattern = "/^UEsDBBQABAAIA/"; break;
}
if (preg_match($pattern, $contents)) {
return true;
}
}
return false;
}
예를 들어 validate_ext('path/to/img.gif', 'gif') 검사를 했을 때 올바른 확장자의 파일일 경우 true값이 리턴됩니다.
게시판 목록
개발자팁
개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5276 | 2년 전 | 1331 | |||
| 5275 | 2년 전 | 1401 | |||
| 5274 | 기타 | 2년 전 | 815 | ||
| 5273 | JavaScript |
swallow
|
2년 전 | 1045 | |
| 5272 | node.js |
swallow
|
2년 전 | 745 | |
| 5271 | JavaScript |
swallow
|
2년 전 | 1495 | |
| 5270 | PHP |
swallow
|
2년 전 | 844 | |
| 5269 | node.js |
swallow
|
2년 전 | 680 | |
| 5268 | node.js |
swallow
|
2년 전 | 1210 | |
| 5267 | PHP |
swallow
|
2년 전 | 1591 | |
| 5266 | MySQL |
swallow
|
2년 전 | 1090 | |
| 5265 | PHP |
swallow
|
2년 전 | 2029 | |
| 5264 | JavaScript |
swallow
|
2년 전 | 859 | |
| 5263 | 기타 |
swallow
|
2년 전 | 2980 | |
| 5262 | 기타 |
swallow
|
2년 전 | 667 | |
| 5261 | node.js |
swallow
|
2년 전 | 1059 | |
| 5260 | JavaScript |
swallow
|
2년 전 | 1508 | |
| 5259 | node.js |
swallow
|
2년 전 | 730 | |
| 5258 | node.js |
swallow
|
2년 전 | 1744 | |
| 5257 | node.js |
swallow
|
2년 전 | 1292 | |
| 5256 | PHP |
swallow
|
2년 전 | 1938 | |
| 5255 | node.js |
swallow
|
2년 전 | 685 | |
| 5254 | PHP |
swallow
|
2년 전 | 3011 | |
| 5253 | node.js |
swallow
|
2년 전 | 676 | |
| 5252 | 정규표현식 |
swallow
|
2년 전 | 623 | |
| 5251 | node.js |
swallow
|
2년 전 | 876 | |
| 5250 | PHP |
swallow
|
2년 전 | 1111 | |
| 5249 | node.js |
swallow
|
2년 전 | 1061 | |
| 5248 | PHP |
swallow
|
2년 전 | 1409 | |
| 5247 | node.js |
swallow
|
2년 전 | 1014 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기