日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java上传文件以流方式判断类型

發(fā)布時(shí)間:2023/12/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java上传文件以流方式判断类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package com.omg.utils;/*** 文件類型枚取*/ public enum FileType {/*** JEPG.*/JPEG("FFD8FF"),/*** PNG.*/PNG("89504E47"),/*** GIF.*/GIF("47494638"),/*** TIFF.*/TIFF("49492A00"),/*** Windows Bitmap.*/BMP("424D"),/*** CAD.*/DWG("41433130"),/*** Adobe Photoshop.*/PSD("38425053"),/*** Rich Text Format.*/RTF("7B5C727466"),/*** XML.*/XML("3C3F786D6C"),/*** HTML.*/HTML("68746D6C3E"),/*** CSS.*/CSS("48544D4C207B0D0A0942"),/*** JS.*/JS("696B2E71623D696B2E71"),/*** Email [thorough only].*/EML("44656C69766572792D646174653A"),/*** Outlook Express.*/DBX("CFAD12FEC5FD746F"),/*** Outlook (pst).*/PST("2142444E"),/*** MS Word/Excel.*/XLS_DOC("D0CF11E0"), XLSX_DOCX("504B030414000600080000002100"),/*** Visio*/VSD("d0cf11e0a1b11ae10000"),/*** MS Access.*/MDB("5374616E64617264204A"),/*** WPS文字wps、表格et、演示dps都是一樣的*/WPS("d0cf11e0a1b11ae10000"),/*** torrent*/TORRENT("6431303A637265617465"),/*** WordPerfect.*/WPD("FF575043"),/*** Postscript.*/EPS("252150532D41646F6265"),/*** Adobe Acrobat.*/PDF("255044462D312E"),/*** Quicken.*/QDF("AC9EBD8F"),/*** Windows Password.*/PWL("E3828596"),/*** ZIP Archive.*/ZIP("504B0304"),/*** RAR Archive.*/RAR("52617221"),/*** JSP Archive.*/JSP("3C2540207061676520"),/*** JAVA Archive.*/JAVA("7061636B61676520"),/*** CLASS Archive.*/CLASS("CAFEBABE0000002E00"),/*** JAR Archive.*/JAR("504B03040A000000"),/*** MF Archive.*/MF("4D616E69666573742D56"),/***EXE Archive.*/EXE("4D5A9000030000000400"),/***CHM Archive.*/CHM("49545346030000006000"),/** INI("235468697320636F6E66"), SQL("494E5345525420494E54"), BAT(* "406563686F206f66660D"), GZ("1F8B0800000000000000"), PROPERTIES(* "6C6F67346A2E726F6F74"), MXP(* "04000000010000001300"),*//*** Wave.*/WAV("57415645"),/*** AVI.*/AVI("41564920"),/*** Real Audio.*/RAM("2E7261FD"),/*** Real Media.*/RM("2E524D46"),/*** MPEG (mpg).*/MPG("000001BA"),/*** Quicktime.*/MOV("6D6F6F76"),/*** Windows Media.*/ASF("3026B2758E66CF11"),/*** MIDI.*/MID("4D546864"),/*** MP4.*/MP4("00000020667479706d70"),/*** MP3.*/MP3("49443303000000002176"),/*** FLV.*/FLV("464C5601050000000900");private String value = "";/*** Constructor.* * @param type*/private FileType(String value) {this.value = value;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}}



package com.omg.utils;import java.io.IOException; import java.io.InputStream;/*** 文件類型判斷類*/ public final class FileTypeJudge {/*** Constructor*/private FileTypeJudge() {}/*** 將文件頭轉(zhuǎn)換成16進(jìn)制字符串* * @param 原生byte* @return 16進(jìn)制字符串*/private static String bytesToHexString(byte[] src) {StringBuilder stringBuilder = new StringBuilder();if (src == null || src.length <= 0) {return null;}for (int i = 0; i < src.length; i++) {int v = src[i] & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();}/*** 得到文件頭* * @param filePath* 文件路徑* @return 文件頭* @throws IOException*/private static String getFileContent(InputStream is) throws IOException {byte[] b = new byte[28];InputStream inputStream = null;try {is.read(b, 0, 28);} catch (IOException e) {e.printStackTrace();throw e;} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {e.printStackTrace();throw e;}}}return bytesToHexString(b);}/*** 判斷文件類型* * @param filePath* 文件路徑* @return 文件類型*/public static FileType getType(InputStream is) throws IOException {String fileHead = getFileContent(is);if (fileHead == null || fileHead.length() == 0) {return null;}fileHead = fileHead.toUpperCase();FileType[] fileTypes = FileType.values();for (FileType type : fileTypes) {if (fileHead.startsWith(type.getValue())) {return type;}}return null;}public static Integer isFileType(FileType value) {Integer type = 7;// 其他// 圖片F(xiàn)ileType[] pics = { FileType.JPEG, FileType.PNG, FileType.GIF, FileType.TIFF, FileType.BMP, FileType.DWG, FileType.PSD };FileType[] docs = { FileType.RTF, FileType.XML, FileType.HTML, FileType.CSS, FileType.JS, FileType.EML, FileType.DBX, FileType.PST, FileType.XLS_DOC, FileType.XLSX_DOCX, FileType.VSD,FileType.MDB, FileType.WPS, FileType.WPD, FileType.EPS, FileType.PDF, FileType.QDF, FileType.PWL, FileType.ZIP, FileType.RAR, FileType.JSP, FileType.JAVA, FileType.CLASS,FileType.JAR, FileType.MF, FileType.EXE, FileType.CHM };FileType[] videos = { FileType.AVI, FileType.RAM, FileType.RM, FileType.MPG, FileType.MOV, FileType.ASF, FileType.MP4, FileType.FLV, FileType.MID };FileType[] tottents = { FileType.TORRENT };FileType[] audios = { FileType.WAV, FileType.MP3 };FileType[] others = {};// 圖片for (FileType fileType : pics) {if (fileType.equals(value)) {type = 1;}}// 文檔for (FileType fileType : docs) {if (fileType.equals(value)) {type = 2;}}// 視頻for (FileType fileType : videos) {if (fileType.equals(value)) {type = 3;}}// 種子for (FileType fileType : tottents) {if (fileType.equals(value)) {type = 4;}}// 音樂for (FileType fileType : audios) {if (fileType.equals(value)) {type = 5;}}return type;}public static void main(String args[]) throws Exception {// System.out.println(FileTypeJudge.getType(new FileInputStream("")));for (FileType type : FileType.values()) {System.out.print(type + "\t");}} }
原文出自:http://www.cnblogs.com/rainsilence/archive/2012/06/06/2538294.html

總結(jié)

以上是生活随笔為你收集整理的java上传文件以流方式判断类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。