通過字尾名和MIME TYPE檢查實現檔案型別校驗

2021-09-13 18:52:26 字數 1246 閱讀 5701

檔案上傳是乙個在開發中很常見的需求場景,通常出於安全考慮,我們會對上傳的檔案進行型別校驗,其中常見的有字尾名校驗,mime-type校驗

1.首先定義允許上傳的檔案型別白名單

private static final string suffixwhitelist = ;

private static final string mimetypewhitelist = ;

2.字尾名校驗

/**

* 檔案字尾名校驗

** @param filename

* 檔名稱

* @return

*/public static boolean suffixcheck(string filename)

//從最後乙個點之後擷取字串

string suffix = filename.substring(filename.lastindexof(".") + 1);

//白名單匹配

boolean anymatch = arrays.stream(suffixwhitelist).anymatch(x -> x.equalsignorecase(suffix));

return anymatch;

}

3.mime-type校驗,因為需要獲取檔案的mimetype,我引入了第三方的jar包(其他同樣功能的jar包都可以)

//mime-type工具包

compile("net.sf.jmimemagic:jmimemagic:0.1.3")

/**

* mimetype校驗

* @return

*/public static boolean mimetypecheck(multipartfile uploadfile)

//檔名

string filename = uploadfile.getoriginalfilename();

// 獲取檔案字尾

string suffix=filename.substring(filename.lastindexof("."));

file picfile = null;

try catch (ioexception e) catch (exception e) finally

}return false;

}

Shell 獲取檔名和字尾名

file thisfile.txt echo filename echo extension 輸出 filename thisfile extension txt 附 基於pattern matching的子串替換 替換第乙個。替換所有。注意 不能使用正規表示式,只能使用?的shell擴充套件。只能...

Python 獲取檔案的檔名和字尾名(副檔名)

我們可以使用os.path.splitext file 0 獲得檔名。我們可以使用os.path.splitext file 1 獲得以.為開頭的檔案字尾名。接下來我們看乙個例子 import os file hello world.py 獲取字首 檔名稱 print os.path.splitex...

Shell 字串處理 獲取檔名和字尾名

file thisfile.txt echo filename echo extension 輸出 filename thisfile extension txt 附 基於pattern matching的子串替換 替換第乙個。替換所有。注意 不能使用正規表示式,只能使用?的shell擴充套件。只能...