채택완료

파일 업로드 질문입니다

2019-01-22 (화) 17:09:44 2,474

안녕하세요

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

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개 / 댓글 5개

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

답변에 대한 댓글 5개

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

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

정확한 경로와 퍼미션만 체크하시면 문제없이 업로드 될것입니다.
2019-01-22 (화) 17:59:57
하 계속 업로드가 안되는데 이유를 모르겠네요.....

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