묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
HTTP_POST_FILES와 filesize...
2003.01.27 03:11
HTTP_POST_FILES와 filesize...
입력받는 파일에서
<form name=write method=post action=write.php enctype=multipart/form-data>
<input type=file name=file><input type=submit>
</form>
이라고 해놓고서 write.php파일에는
if($HTTP_POST_FILES[file]) {
$file = $HTTP_POST_FILES[file][tmp_name];
$file_name = $HTTP_POST_FILES[file][name];
$file_type = $HTTP_POST_FILES[file][type];
$file_size = $HTTP_POST_FILES[file][size];
}
$file_size_func = filesize($file);
$output = "임시이름:".$file."<br>이름:".$file_name."<br>타입:".$file_size."<br>크기:".$file_size."<br>filesize크기:".$file_size_func;
echo $output;
라고 넣었습니다.
그리고나서 입력받는 파일에다 등록할 파일을 선택하고 SUBMIT버튼을 눌렀더니 파일의 임시이름, 이름, 타입, 크기가 정상적으로 출력됐습니다..
하지만 만약에 파일을 선택하지않고 SUBMIT버튼을 눌렀을 때 문제가 약간 발생합니다..
먼저 파일을 입력받지 않았음에도 불구하고 처음의 if문에서 $HTTP_POST_FILES[file]변수가 존재하는 것 처럼 인식됩니다..
하지만 화면에 출력되는 내용중에 파일의 임시이름($file)과 이름($file_name)은 존재하지 않습니다..
타입은 application/octet-stream 이라 출력됩니다.. 파일은 없는데도 말이죠..
하지만 정작 중요한 문제는 파일의 용량에서 생깁니다..
파일의 입력을 받지 않았으므로 파일의 용량은 0이 되어야 정상입니다..
실제로 $HTTP_POST_FILES[file][size]변수, 즉, $file_size변수의 값은 정상적으로 0으로 출력됩니다..
하지만 filesize($file)함수에 의해 계산된 파일의 사이즈를 출력하면 0이 아닌 4096으로 출력됩니다..
도대체 무엇이 문제일까요?
원래 PHP가 가진 버그일까요?
아니면 제 서버의 세팅이 문제일까요?
제가 서버를 직접 운영하고 있기 때문에 세팅에 문제가 있을 가능성도 매우 많습니다..
고수님들의 가르침 부탁드립니다..
입력받는 파일에서
<form name=write method=post action=write.php enctype=multipart/form-data>
<input type=file name=file><input type=submit>
</form>
이라고 해놓고서 write.php파일에는
if($HTTP_POST_FILES[file]) {
$file = $HTTP_POST_FILES[file][tmp_name];
$file_name = $HTTP_POST_FILES[file][name];
$file_type = $HTTP_POST_FILES[file][type];
$file_size = $HTTP_POST_FILES[file][size];
}
$file_size_func = filesize($file);
$output = "임시이름:".$file."<br>이름:".$file_name."<br>타입:".$file_size."<br>크기:".$file_size."<br>filesize크기:".$file_size_func;
echo $output;
라고 넣었습니다.
그리고나서 입력받는 파일에다 등록할 파일을 선택하고 SUBMIT버튼을 눌렀더니 파일의 임시이름, 이름, 타입, 크기가 정상적으로 출력됐습니다..
하지만 만약에 파일을 선택하지않고 SUBMIT버튼을 눌렀을 때 문제가 약간 발생합니다..
먼저 파일을 입력받지 않았음에도 불구하고 처음의 if문에서 $HTTP_POST_FILES[file]변수가 존재하는 것 처럼 인식됩니다..
하지만 화면에 출력되는 내용중에 파일의 임시이름($file)과 이름($file_name)은 존재하지 않습니다..
타입은 application/octet-stream 이라 출력됩니다.. 파일은 없는데도 말이죠..
하지만 정작 중요한 문제는 파일의 용량에서 생깁니다..
파일의 입력을 받지 않았으므로 파일의 용량은 0이 되어야 정상입니다..
실제로 $HTTP_POST_FILES[file][size]변수, 즉, $file_size변수의 값은 정상적으로 0으로 출력됩니다..
하지만 filesize($file)함수에 의해 계산된 파일의 사이즈를 출력하면 0이 아닌 4096으로 출력됩니다..
도대체 무엇이 문제일까요?
원래 PHP가 가진 버그일까요?
아니면 제 서버의 세팅이 문제일까요?
제가 서버를 직접 운영하고 있기 때문에 세팅에 문제가 있을 가능성도 매우 많습니다..
고수님들의 가르침 부탁드립니다..