파일 업로드 질문입니다 채택완료

6년 전 조회 2,376

안녕하세요

 

이미지파일을 업로드 하려고 하는데요

 

mysql db table안에 co_img 라는 값에 업로한 이미지의 이름이 들어가게 하고

 

form.php 에서 form태그를 통해 다른 정보들과 함께 input file을 통해 이미지를 받아서 같은 경로 안에

 

img라는 파일에 저장하려고 합니다

 

인터넷을 보고 따라해서

 

$uploaddir = './img/';
$uploadfile = $uploaddir.basename($_FILES['co_img']['name']);


print "<pre>"; 
if (move_uploaded_file($_FILES['co_img']['tmp_name'], $uploadfile)) { 
  print "파일이 존재하고, 성공적으로 업로드 되었습니다."; 
  print "추가 디버깅 정보입니다:\n"; 
  print_r($_FILES); 
} else { 
  print "파일 업로드 공격의 가능성이 있습니다! 디버깅 정보입니다:\n"; 
  print_r($_FILES); 

print "</pre>"; 

 

이런식으로  작성을 했더니

 

파일 업로드 공격의 가능성이 있습니다! 디버깅 정보입니다.

 

이런식으로 뜨고 이미지파일이 uploaddir 에 저장이 되지 않습니다...

 

어떻게 해야 될까요?

답변 1개

채택된 답변
+20 포인트
echo $_FILES["co_img"]["error"]; 찍어 보세요. 
에러 코드에 따라 확인하시면 됩니다. 
폴더 퍼미션(읽고 쓰는 권한) 체크하시고 호스팅 정보 체크해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

파일 경로는 저렇게 하는게 맞는건가요?
혹시 data폴더가 아닌 다른곳으로 보냈는데 그게 문제가 될까요?
그누보드 구조라면 data 폴더에 업로드 하시면 됩니다.
스터디 용으로 하신거라면 일단 파일을 업로드 할때 각 폴더에 퍼미션이 어떤것인지 아셔야 할것 같고요. form 에 enctype="multipart/form-data" 추가했는지 체크하시고
error 코드 숫자 찍어 보세요
error 코드 말씀해주신대로 찍었더니 0이 나옵니다
uploaddir 경로에 절대경로로 입력하면 될까요?
error 코드 0 은 정상적인 업로드가 된것입니다.

해당 폴더 확인하시고 상대경로 혹은 절대경로 모두 상관 없습니다.

정확한 경로와 퍼미션만 체크하시면 문제없이 업로드 될것입니다.
하 계속 업로드가 안되는데 이유를 모르겠네요.....

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고