判斷檔案型別
在上傳檔案,判斷檔案型別的時候,往往會通過字尾名和頭部資訊判斷,前者大大不靠譜,後者個別型別的檔案不太好判斷。這裡推薦apache的一款tika,可以做檔案判斷還可以更強大的做內容解析。一下寫出兩種方法判斷,乙個基於頭部資訊,乙個基於tika.
一:根據頭部資訊
public class checkfiletype
/*** @return 檔案頭資訊
* @author liang.pan
* * 方法描述:根據輸入流獲取檔案頭資訊
*/public static string getfiletype(inputstream inputstream)
/*** @return 檔案頭資訊
* @author liang.pan
* * 方法描述:根據輸入流獲取檔案頭資訊
*/public static string getfileheader(inputstream inputstream) catch (exception e) finally catch (ioexception e) }}
logger.info(">>>>>檔案的頭部資訊:" + value);
if (stringutils.startswith(value, "ffd8ff"))
return value;
}/**
* @param src 要讀取檔案頭資訊的檔案的byte陣列
* @return 檔案頭資訊
* @author liang.pan
* * 方法描述:將要讀取檔案頭資訊的檔案的byte陣列轉換成string型別表示
*/private static string bytestohexstring(byte src)
string hv;
for (int i = 0; i < src.length; i++)
}return builder.tostring();
}}
二:tika
引入依賴
* 判斷是否是
* @param file
* @return
* @throws tikaexception
* @throws ioexception
* @throws saxexception
*/public static boolean isimage(file file)
}
常見檔案型別 判斷檔案型別
判斷檔案型別 檔案的真正型別,不是根據副檔名判斷 通過檔案頭來判斷 檔案型別列舉引數 如下 using system using system.collections.generic using system.linq using system.text namespace servicecontr...
PHP 判斷檔案型別
參考 黑夜路人 一般我們都是按照副檔名來判斷檔案型別,但是這個很不靠譜,輕易就通過修改副檔名來躲避了,一般必須要讀取檔案資訊來識別。foreach files as file 注 檔名擴充套件 linux不使用檔名擴充套件來識別檔案的型別。相反,linux根據檔案的頭內容來識別其型別。為了提高人類可...
判斷檔案型別mime type
得到檔案的mime types型別,目前一種是通過判斷檔案的字尾,另一種就是通過檔案的內容來判斷,當然前一種如果你故意修改檔案字尾的話就不能做為真實的依據了,後一種才是最可靠的,ruby目前的乙個gem mime types就是通過判斷檔案字尾的方法,不太可靠,所以我們可以使用linux系統的工具來...