V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  arseBurger  ›  全部回复第 2 页 / 共 2 页
回复总数  25
1  2  
2019-02-01 14:42:57 +08:00
回复了 arseBurger 创建的主题 问与答 求助: springmvc 上传至 mongodb 后下载文件无法打开
@undeflife 嗯嗯,不好意思,我没表述清楚,是下载到本地后无法打开,照片类型的提示无法打开此文件,doc 文档提示发现有无法读取的内容,mp4 文件提示此文件无法播放。这可能是因为文件类型不受支持、文件扩展名不正确或文件已损坏。
2019-02-01 13:45:12 +08:00
回复了 arseBurger 创建的主题 问与答 求助: springmvc 上传至 mongodb 后下载文件无法打开
@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;
}
}
2019-02-01 13:28:34 +08:00
回复了 arseBurger 创建的主题 问与答 求助: springmvc 上传至 mongodb 后下载文件无法打开
@undeflife 感谢回复,fileType 是存到 GridFs 里的文件后缀名,如下记录:
{
"filename" : "3514bd478bbe476b8628daa5d2f03156",
"aliases" : null,
"chunkSize" : NumberLong(261120),
"uploadDate" : ISODate("2019-01-31T05:20:51.364+0000"),
"length" : NumberLong(6035),
"_id" : ObjectId("5c5285b32293366f443d190d"),
"contentType" : "txt",
"md5" : "06d90ff5b133aceecd080fdcff475b1b"
}

我试了一下下载 FileSystem 上的文件同样有这个问题,应该可以排除 mongodb 存储的问题了
2019-02-01 11:23:34 +08:00
回复了 arseBurger 创建的主题 问与答 求助: springmvc 上传至 mongodb 后下载文件无法打开
99 可怜的新手
2019-02-01 11:10:10 +08:00
回复了 arseBurger 创建的主题 问与答 求助: springmvc 上传至 mongodb 后下载文件无法打开
在吗? 看看题 : (
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2632 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 05:17 · PVG 13:17 · LAX 21:17 · JFK 00:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.