move_upload_file 함수 관련

move_upload_file 함수 관련

QA

move_upload_file 함수 관련

본문

/bbs/write_update.php의

게시판 첨부파일을 작성하면 첨부파일 로직의 마지막에

$error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);

이렇게 처리가 되는데

 

$error_code = ($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);

@unlink($tmp_fle);

이렇게 처리하는 것과 차이가 있을까요?

당연히 한 번 더 거치기 때문에 비효율 적이긴 한데

이렇게 써야 하는 이유가 있어서 일단 해보니 되긴 하는데

문제나 어떤 차이가 있을까요?

이 질문에 댓글 쓰기 :

답변 1

실제로는 같은 결과가 맞습니다.

move_uploaded_file() 함수는 파일을 이동하는 함수입니다.

즉 A디렉터리에서 B디렉터리로 이동을 의미하는 함수이며,

 

copy() 함수는 말 그대로 복사를 의미합니다.

복사는 A디렉터리와 B디렉터리 모두 같은 파일이 있을 수 있음을 의미합니다.

하지만 마지막에 @unlink로 원본 파일을 삭제하였으니,

 

두 코드의 결과는 같다고 볼 수 있습니다.

-------------------

move_uploaded_file() 함수는 filename 으로 지정된 파일이 유효한 업로드 파일인지를 확인합니다.(PHP의 HTTP POST로 업로드되었음을 의미)

파일이 유효하면 대상에서 지정한 경로로 파일을 이동시킵니다.

filename이 유효한 업로드 파일이 아니면, 아무작업도 발생되지않고, false를 반환합니다.

 

copy() 함수는 복사가 성공하면 true, 그렇지않으면 false를 반환합니다.

 

따라서 해당 파일이 유효한지를 검증은 하지않게되고, 단순 복사를 했냐 안했냐만 따지게됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,528 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT