파일 업로드 원칙:
클라이언트의 파일을 서버에 업로드한 다음 서버의 임시 파일을 지정된 디렉터리로 이동합니다.
클라이언트 구성:
1. 폼 페이지
2. 지원서는 우편으로 발송됩니다
3. enctype=”multipart/form-data” 추가
$_FILES는 업로드된 파일의 정보를 저장합니다
name: 업로드된 파일 이름
유형: 업로드된 파일의 MIME 유형
tmp_name: 서버에 업로드되는 임시 파일 이름
크기: 업로드 파일 크기
error: 업로드된 파일의 오류 번호
move_uploaded_file(
예:
move_uploaded_file(
또한:
copy(
파일 업로드 구성: php.ini
서버 측 구성:
file_uploads = on, HTTP 업로드 지원
upload_tmp_dir= , 임시 파일이 저장되는 디렉터리
upload_max_filesize = 2M, 업로드 가능한 최대 파일 크기
max_file_uploads = 20, 한 번에 업로드할 수 있는 최대 파일 수
post_max_size = 8M, POST 모드에서 전송되는 데이터의 최대값
max_execution_time = -1, 잘못 작성된 프로그램이 스크립트를 점유하는 것을 방지하기 위해 파서가 스크립트를 종료하기 전에 허용되는 최대 실행 시간을 초 단위로 설정합니다. 서버 리소스
max_input_time = 60, 스크립트가 입력 데이터를 구문 분석하는 데 허용되는 최대 시간(초)
max_input_nesting_level = 64, 입력 변수의 중첩 깊이 설정
max_input_vars = 1000, 허용되는 입력 변수 수(
참고: 클라이언트 측에서 제한된 코드의 경우 브라우저에서 코드를 수정하여 제한을 쓸모없게 만들 수 있습니다. 따라서 제한 사항은 모두 서버 측에 있어야 합니다.
업로드 파일 크기 제한(크기를 통해)
업로드된 파일 형식 제한(in_array(suffix, array), 파일 접미사가 지정된 형식의 배열에 있는지 확인)
실제 이미지 형식인지 확인(getimagesize)
HTTP POST 메소드로 업로드되었는지 감지합니다(is_uploaded_file, PHP 포스트 메소드를 통해 업로드되었음을 나타내려면 true를 반환함)
md5(uniqid(microtime(true),true))