檔案上傳是乙個在開發中很常見的需求場景,通常出於安全考慮,我們會對上傳的檔案進行型別校驗,其中常見的有字尾名校驗,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擴充套件。只能...