728x90
300x250
파일을 업로드할때 당연한것임에도 불구하고 항상 잘 빼먹는것이 있다
enctype="multipart/form-data" 꼭 체크체크
<form id="fileForm" name="fileForm" method="POST" enctype="multipart/form-data" >
<input type="file" id="fileName" name="fileName">
...
</form>
받는쪽에서는 아래와 같이 조정해주면되는데 맨 첫줄은 굳이 안써줘도된다.
ini_set('memory_limit','-1'); //파일 용량이 커서 메모리가 많이 필요할때
$fileName = $_FILES['fileName']['name'];
$error = $_FILES['fileName']['error'];
if( $error != UPLOAD_ERR_OK ) {
switch( $error ) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
echo "파일이 너무 큽니다. ($error)";
break;
case UPLOAD_ERR_NO_FILE:
echo "파일이 첨부되지 않았습니다. ($error)";
break;
default:
echo "파일이 제대로 업로드되지 않았습니다. ($error)";
}
exit;
}
move_uploaded_file( $_FILES['fileName']['tmp_name'], "경로/$fileName");
내 경우에는 100M 가 넘는 파일의 용량을 업로드 할일이 있었어서 그냥 php.ini 에서 아래부분들을 수정해주면 될줄알았는데 희한하게 에러없이 자꾸 중도에 실행이 멈춰서 혹시 메모리 때문인가 싶어서 상단에 memory_limit 을 무제한으로 줬더니 해결이되었다.
사실 무제한을 줘서 해결하는건 별로 좋은 방법은 아닌거같고 이 부분은 추후에 좀 더 찾아봐야겠다
#php.ini 단 수정
upload_max_filesize = 200M
post_max_size = 200M
#php 파일 상단 선언, 메모리 제한 무제한
ini_set('memory_limit','-1');
그 이외에 php.ini 설정사항을 일일히 터미널이나 ini 파일 열어서 보기 귀찮으면
가동되고있는 서버상에 아무 이름의 php 파일 하나 만들어서 내용에 아래 처럼 적어주면
ex) www.example.com/test.php
<?
phpinfo();
?>
아래와 같이 ctrl + F 해서 검색해보면 내가 설정한 부분 혹은 확인해야할 부분이 어떤식으로 되어있는지 적용은 되었는지 체크할수있어서 편하다.
728x90
300x250
'IT > PHP' 카테고리의 다른 글
[PHP + JS] TreeView 트리뷰 , 트리구조 구현 (8) | 2021.06.02 |
---|---|
[PHP] 이미지 사이즈 변경 및 용량 줄이기 (0) | 2021.05.10 |
[PHP] 암호화 openssl aes-256-cbc (0) | 2021.03.29 |
[PHP] 특정폴더 하위 모든 파일 이름 변경 rename (0) | 2021.03.25 |
[PHP + Mysql] Rownum 적용 SET @ROWNUM:=0; (0) | 2021.01.28 |