복붙노트

[SQL] 바이트 배열에서 파일 확장자를 추출하는 방법

SQL

바이트 배열에서 파일 확장자를 추출하는 방법

나는 데이터베이스에 배열 바이트 있어요.

어떻게 파일 확장자 (마임 / 타입) 자바 바이트 배열에서 압축을 풉니 다?

해결법

  1. ==============================

    1.이 업로드 된 파일을 저장하는 경우 :

    이 업로드 된 파일을 저장하는 경우 :

    원본 파일이없는, 당신 만 바이트있는 경우에, 당신은 좋은 솔루션의 몇 가지있다.

    당신은 바이트를 검사-util을 마임을 사용하여에 도서관, 모양을 사용할 수있는 경우 :

    http://technopaper.blogspot.com/2009/03/identifying-mime-using-mime-util.html

    당신이 당신의 자신의 바이트 검출기를 구축해야하는 경우, 여기에 가장 인기있는 시작 바이트의 많은입니다 :

    "BC" => bitcode,
    "BM" => bitmap,
    "BZ" => bzip,
    "MZ" => exe,
    "SIMPLE"=> fits,
    "GIF8" => gif,
    "GKSM" => gks,
    [0x01,0xDA].pack('c*') => iris_rgb,
    [0xF1,0x00,0x40,0xBB].pack('c*') => itc,
    [0xFF,0xD8].pack('c*') => jpeg,
    "IIN1" => niff,
    "MThd" => midi,
    "%PDF" => pdf,
    "VIEW" => pm,
    [0x89].pack('c*') + "PNG" => png,
    "%!" => postscript,
    "Y" + [0xA6].pack('c*') + "j" + [0x95].pack('c*') => sun_rasterfile,
    "MM*" + [0x00].pack('c*') => tiff,
    "II*" + [0x00].pack('c*') => tiff,
    "gimp xcf" => gimp_xcf,
    "#FIG" => xfig,
    "/* XPM */" => xpm,
    [0x23,0x21].pack('c*') => shebang,
    [0x1F,0x9D].pack('c*') => compress,
    [0x1F,0x8B].pack('c*') => gzip,
    "PK" + [0x03,0x04].pack('c*') => pkzip,
    "MZ" => dos_os2_windows_executable,
    ".ELF" => unix_elf,
    [0x99,0x00].pack('c*') => pgp_public_ring,
    [0x95,0x01].pack('c*') => pgp_security_ring,
    [0x95,0x00].pack('c*') => pgp_security_ring,
    [0xA6,0x00].pack('c*') => pgp_encrypted_data,
    [0xD0,0xCF,0x11,0xE0].pack('c*') => docfile
    
  2. ==============================

    2.파일의 마임 타입에서 자바를 얻기에는 다음과 같은 대답을 참조하십시오, JDK의 URLConnection의 클래스에 유리한 방법이 밝혀졌다

    파일의 마임 타입에서 자바를 얻기에는 다음과 같은 대답을 참조하십시오, JDK의 URLConnection의 클래스에 유리한 방법이 밝혀졌다

    대신 파일의 바이트 배열로부터 추출 파일 확장자 하나 개의 필요, 하나는 단순히 대신 java.io.FileInputStream의의 (바이트 배열에서 특별히 바이트 읽기 클래스) java.io.ByteArrayInputStream의를 사용해야하는 경우와 같은 (클래스는 특정 파일에서 바이트 읽기) 다음 예제 :

    byte[] content = ;
    InputStream is = new ByteArrayInputStream(content);
    String mimeType = URLConnection.guessContentTypeFromStream(is);
     //...close stream
    

    도움이 되었기를 바랍니다...

  3. ==============================

    3.즉, 데이터베이스의 콘텐츠를 기반으로 MIME 유형을 추론하려고 시도하는 것보다 더 나은 솔루션에 대한 다음과 같은 이유로 (적어도) :

    즉, 데이터베이스의 콘텐츠를 기반으로 MIME 유형을 추론하려고 시도하는 것보다 더 나은 솔루션에 대한 다음과 같은 이유로 (적어도) :

    (내가 보증 할 수 없습니다 몇 가지 가정을 만들고 있어요,하지만 문제는 큰 시스템 작업에 의도 방법에 대한 단서를 제공하지 않습니다.)

  4. from https://stackoverflow.com/questions/10040330/how-to-extract-file-extension-from-byte-array by cc-by-sa and MIT license