@
undeflife ....修改一下...FileSystem 上的文件下载只有 Txt 能正常打开,其他的还是不行 :(
这段是判断文件类型的方法:
/**
* 根据制定文件的文件头判断其文件类型
*
* @
param * @
return */
public static String getFileType(InputStream inputStream) {
String res = null;
try {
byte[] b = new byte[10];
inputStream.read(b, 0, b.length);
String fileCode = bytesToHexString(b);
System.out.println(fileCode);
//这种方法在字典的头代码不够位数的时候可以用但是速度相对慢一点
Iterator<String> keyIter = FILE_TYPE_MAP.keySet().iterator();
while (keyIter.hasNext()) {
String key = keyIter.next();
if (key.toLowerCase().startsWith(fileCode.toLowerCase()) || fileCode.toLowerCase().startsWith(key.toLowerCase())) {
res = FILE_TYPE_MAP.get(key);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return res;
}
这段是匹配 MediaType 的方法:
/**
* @
param fileType
* @
return */
public static MediaType getEnableStr(String fileType) {
if (IMAGE_TYPES.contains(fileType)) {
return MediaType.valueOf("image/" + fileType);
} else if (PDF_TYPES.contains(fileType)) {
return MediaType.APPLICATION_PDF;
} else if (TXT_TYPES.contains(fileType)) {
return MediaType.TEXT_PLAIN;
} else {
return MediaType.APPLICATION_OCTET_STREAM;
}
}