>  기사  >  백엔드 개발  >  move_uploaded_file 사용

move_uploaded_file 사용

WBOY
WBOY원래의
2016-07-29 09:00:393135검색

정의 및 사용법

move_uploaded_file() 함수는 업로드된 파일을 새로운 위치로 이동시킵니다.

성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

구문

move_uploaded_file(file,newloc)
参数 描述
file 必需。规定要移动的文件。
newloc 必需。规定文件的新位置。

설명

이 기능은 file에 지정된 파일이 합법적인 업로드 파일(예: PHP의 HTTP POST 업로드 메커니즘을 통해 업로드됨). 파일이 합법적이라면 newloc에 지정된 파일로 이동하세요.

파일이 합법적으로 업로드된 파일이 아닌 경우 아무런 작업도 수행되지 않으며 move_uploaded_file()은 false를 반환합니다.

파일이 유효한 업로드 파일이지만 어떤 이유로 이동할 수 없는 경우 아무 작업도 발생하지 않고 move_uploaded_file()이 false를 반환하고 경고가 발생합니다.

업로드된 파일로 인해 해당 콘텐츠가 이 시스템의 사용자 또는 다른 사용자에게 표시될 수 있는 경우 이 확인이 특히 중요합니다.

팁 및 메모

참고: 이 기능은 HTTP POST를 통해 업로드된 파일에만 사용됩니다.

참고: 대상 파일이 이미 존재하는 경우 덮어쓰게 됩니다.


w3c 소개, 제가 겪은 문제점에 대해 이야기해보겠습니다.

일반적으로 저장 파일을 다음과 같이 작성합니다.

$fileName = $_SERVER['DOCUMENT_ROOT'].'/Basic/uploads/'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'],$fileName )

먼저 설명하자면, 이 두 줄의 코드의 의미는 다음과 같습니다. 파일을 직접 저장하고, 파일 이름도 사용자가 업로드한 파일 이름입니다.

자 이제 위험은 다음과 같습니다.

①파일을 직접 저장합니다.

이는 사용자가 배경 코드 일부를 업로드하여 jpg 접미사로 저장한 경우, 관리자가 실수로 해당 파일을 php에 매핑한 후 해당 파일에 액세스하면 어떤 방식으로도 파일이 인식되지 않는다는 의미입니다. background, - - 결과 그가 백그라운드에서 모든 데이터베이스를 삭제하면 전체 웹사이트가 직접 GG를 할 것이라고 생각할 수 있습니다. 즉, 파일을 직접 저장하는 것은 매우 위험합니다.

②사용자 파일명과 동일한 파일명을 사용하세요.

위 코드는 사용자가 중국어 파일 이름을 사용하는 경우 오류를 보고합니다.

파일명이 들어가자마자 인코딩이 들어가게 되는데, 파일명이 영문+숫자라면 문제가 되겠지만 꼭 필요합니다. 다시 인코딩됩니다.

안정적인 저장공간은 이래야 한다고 생각합니다.

①사용자가 업로드한 파일은 반드시 식별이 되어야 합니다.

파일 인식, 이 부분은 기능이 많은데 역시 위조가 어려운 MIME 형식을 사용하는 것이 좋은 것 같아요.

② 파일명을 변경합니다.

파일 이름을 "201634104421"과 같은 시간 형식으로 변경하거나 파일 이름을 데이터베이스와 일치시키는 것이 가장 좋다고 생각합니다.

위 내용은 내용의 측면을 포함하여 move_uploaded_file의 사용법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP----문자열다음 기사:PHP----문자열