php 파일 형식 가 져 오기

2841 단어 PHP
파일 업로드 후 phop 배경 은 $FILES 슈퍼 전역 변수 에서 파일 을 업로드 하 는 여러 가지 정 보 를 얻 었 습 니 다. 여기 서 파일 을 업로드 하 는 설명 을 참조 합 니 다.
http://yuweiqiang.blog.163.com/blog/static/6657041201071811832110/ 쓰다
PHP $_FILES 배열 의 내용 은 다음 과 같 습 니 다.
$_FILES ['my File'] ['name'] 클 라 이언 트 파일 의 원래 이름 입 니 다.
$_FILES ['my File'] ['type'] 파일 의 MIME 형식 은 브 라 우 저가 이 정 보 를 지원 해 야 합 니 다. 예 를 들 어 'image / gif' 입 니 다.
$_FILES['myFile']['size'] c。
$_FILES ['my File'] ['tmp name'] 파일 이 업 로드 된 후 서버 에 저 장 된 임시 파일 이름 은 일반적으로 시스템 기본 값 입 니 다.php. ini 에서 업로드 가능tmp_dir 지정, 그러나 putenv () 함수 로 설정 하 는 것 은 소 용이 없습니다.
$_FILES ['my File'] ['error'] 이 파일 업로드 와 관련 된 오류 코드 입 니 다.['error'] 는 PHP 4.2.0 버 전에 추가 되 었 습 니 다.다음은 그것 의 설명 이다. (그것들 은 PHP 3.0 이후 상수 가 되 었 다)
UPLOAD_ERR_OK
값: 0;오류 가 발생 하지 않 았 습 니 다. 파일 업로드 에 성 공 했 습 니 다.
UPLOAD_ERR_INI_SIZE
값: 1;업로드 한 파일 이 php. ini 에서 upload 를 초과 하 였 습 니 다.max_filesize 옵션 이 제 한 된 값 입 니 다.
UPLOAD_ERR_FORM_SIZE
값: 2;업로드 파일 의 크기 가 HTML 폼 의 MAX 를 초과 하 였 습 니 다.FILE_SIZE 옵션 이 지정 한 값 입 니 다.
UPLOAD_ERR_PARTIAL
값: 3;파일 은 일부 만 업로드 된다.
UPLOAD_ERR_NO_FILE
값: 4;파일 이 업로드 되 지 않 았 습 니 다.
값: 5;업로드 파일 크기 는 0 입 니 다.
PHP $ 사용FILES 배열 은 파일 업로드 가 끝나 면 기본적으로 임시 디 렉 터 리 에 저 장 됩 니 다. 이 때 임시 디 렉 터 리 에서 삭제 하거나 다른 곳 으로 이동 해 야 합 니 다. 없 으 면 삭 제 됩 니 다.업로드 에 성공 하 든 안 하 든 스 크 립 트 가 실 행 된 후 임시 디 렉 터 리 에 있 는 파일 은 반드시 삭 제 됩 니 다.그래서 삭제 하기 전에 PHP 의 copy () 함수 로 다른 위치 로 복사 해 야 파일 업로드 과정 이 완 료 된 셈 이다.
 
이 안 은 파일 형식 에 대한 것 으로 파일 확장 (windows 만 이 개념) 명 에 따라 판단 되 기 때문에 조작 할 수 있 습 니 다.
예 를 들 어 xxx. cmd 스 크 립 트 를 xxx. jpg 로 수정 하여 업로드 한 후 $FILES['myFile']['type'] 의 값 은 image / jpeg 입 니 다.따라서 파일 의 실제 형식 을 얻 으 려 면 이 정 보 를 버 리 고 다른 방법 을 사용 해 야 합 니 다.
 
파일 가 져 오 는 방법 참고 글:http://www.cnblogs.com/see7di/archive/2011/07/02/2239691.html 
그 중 에 mimecontent_type 이 폐기 되 었 습 니 다.
finfo_open 내 가 시도 해 봤 는데 확장 이 필요 해.
exif 사용imagetype () 함수 로 이미지 형식 상수 가 져 오고 imagetype_to_mime_type () 함수 가 그림 형식 상수 를 그림 파일 로 변환 하 는 MIME 형식 도 php 를 사용 해 야 합 니 다.mbstring. dll (Windows 필요) 와 extension = phpexif.dll。Liux 에 해당 하 는 so 가 있 습 니 다.
 
참고 코드 를 드 리 겠 습 니 다.
 
$image_type = image_type_to_mime_type(exif_imagetype($_FILES["file"]["tmp_name"]));
//    :image/jpeg

 
 finfo 함수 로:
 
$mimetype = finfo_file($finfo, $_FILES["file"]["tmp_name"]);
finfo_close($finfo);
$image_type = image_type_to_mime_type(exif_imagetype($_FILES["file"]["tmp_name"]));
//    :image/jpeg; charset=binary

 
 주의: imagetype 함수 도 zip 패 키 지 를 판단 할 수 있 지만 이 두 가지 방법 으로 얻 은 파일 형식 설명 이 다 릅 니 다. 또한 finfo 함수 가 얻 은 파일 형식 이 가장 상세 하고 정확 합 니 다.

좋은 웹페이지 즐겨찾기