정의 및 사용법
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.