2012-11-03 4 views
2

PHP를 사용하여 MySQL BLOB 필드에 파일을 저장하고 있습니다. 나중에 BLOB 데이터를 메일의 첨부 파일로 보내려고합니다.PHP에서 MySQL BLOB 객체의 유형 찾기

제 질문은 : PHP에서 BLOB 객체의 유형을 어떻게 얻을 수 있습니까? 해당 BLOB 객체는 PDF 또는 Word 파일 일 수 있습니다. 파일 형식을 알지 못하면 메일을 보낼 수 없습니다.

해답을 제안 해주세요. 감사합니다.

+3

BLOB 필드에 데이터를 저장하는 동안 doc_type을 새로 작성하고 doc 유형 (pdf/doc)을 저장하십시오. –

답변

2

BLOB 객체의 데이터의 원래 파일 유형은 MySQL에 저장되지 않으므로 파일이 어떤 파일 유형인지 즉시 알 수 없습니다. MySQL의에서

  • 를 파일 형식으로 필드를 생성하고, 파일 데이터가 저장 될 때, 또한 파일 형식을 저장 : 파일 형식을 얻기 위하여

    , 당신은 어떤 일을 할 수 있습니다.

  • 파일 서명을 확인하십시오. 대부분의 파일은 동일한 형식 인 경우 첫 번째 바이트가 동일합니다. PDF 파일의 경우 서명은 %PDF이고 Word 파일의 경우 서명은 16 진수로 표시된이 바이트로 구성됩니다 (50 4B 03 04 14 00 06 00). 많은 파일 서명을 찾을 수있는 a table을 찾았습니다. 서명 검사는 모든 파일 형식에 적용되는 것은 아닙니다.
  • PHP를 편리하게 사용하려면 FileInfo 함수를 사용할 수 있습니다.
0

파일 서명을 확인할 수 있습니다. 이것이 파일 형식과 버전을 정의하는 파일의 첫 번째 줄입니다.

은 PDF의 경우는 = 2003 MS 오피스 <를 들어 %의 PDF 해야한다 : ÐÏ.à¡ ±은 MS 오피스> 2003 을 .A : PK ... (이 압축 된 형식이다, 그것은이 있습니다 zip 파일과 동일한 서명)

더 쉬운 방법은 새 열에 파일을 저장할 때 문서 유형을 저장하는 것입니다.