Content-Type: application/pdf; name="filename_a.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="filename_a.pdf"
"X-TIKA:embedded_resource_path": "/filename_a.pdf"
Content-Type: application/pdf; name="filename_a.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
"X-TIKA:embedded_resource_path": "/embedded-1"
private String getResourceName(Metadata metadata, RecursiveParserWrapper.ParserState state) {
String objectName = "";
if (metadata.get("resourceName") != null) {
objectName = metadata.get("resourceName");
} else if (metadata.get("embeddedRelationshipId") != null) {
objectName = metadata.get("embeddedRelationshipId");
} else {
objectName = "embedded-" + ++state.unknownCount;
}
objectName = FilenameUtils.getName(objectName);
return objectName;
}
我试图通过检查元数据对象中的Content-Type键来访问不知何故提到的filename属性,但它不在那里。(我假设Tika评估内容类型的关键字不只是通过查看适当的标题,因此缺少所需的文件名)
因此,我的问题是(因为我无法弄清楚)是否有一种方法可以修改Tika源代码,以强制从内容类型头中提取文件名,当内容处置头中缺少适当的文件名属性时?
好吧,所以我自己设法做到了。解决办法简单明了。
必须扩展\org\apache\tika\parser\mail\mailContentHandler.class中的一个条件。在第129行中,我们有:
if (contentDispositionFileName != null) {
submd.set("resourceName", contentDispositionFileName);
}
通过使用附加的else块进行扩展:
if (contentDispositionFileName != null) {
submd.set("resourceName", contentDispositionFileName);
} else {
Map<String, String> contentTypeParameters = ((MaximalBodyDescriptor)body).getContentTypeParameters();
String contentTypeFilename = (String)contentTypeParameters.get("name");
submd.set("resourceName", contentTypeFilename);
}
我有一个现有的代码,下载和处理正确的一些电子邮件。 简而言之,我的代码如下所示: 我应该修改它,以便解析EML并递归地获取附件,但我忽略了全局。 更新:我修改了方法(但它仍然不起作用): 有什么需要帮忙的吗? 谢谢
我下载了一个文件作为ajax的响应。如何从中获取文件名和文件类型并显示缩略图。我得到了很多搜索结果,但找不到正确的方法。 控制台输出:
问题内容: 是否有从文件名中提取扩展名的功能? 问题答案: 使用(请参阅Python 2.X文档或Python 3.X文档): 与大多数手动字符串拆分尝试不同,它将正确地视为没有扩展而不是具有,并且将被视为没有扩展而不是具有:
问题内容: 当用户在网页中选择文件时,我希望能够仅提取文件名。 我确实尝试过str.search函数,但是当文件名像这样时似乎失败: c:\ uploads \ ilike.this.file.jpg 。 我们如何仅提取不带扩展名的文件名? 问题答案: 假设您的 < input type =“ file”>具有上 载 ID,则有望实现这一目标:
问题内容: 有更有效的方法吗?我的代码读取一个文本文件并提取所有名词。 如何减少此代码的时间复杂度?有没有办法避免使用嵌套的for循环? 提前致谢! 问题答案: 如果您不接受其他选项,请签出。它可以轻松提取所有名词和名词短语:
问题是无法从$HTTP响应头中获取文件名 HTTP/1.1 200 OK 内容-长度:121257 内容-类型:Application/PDF 服务器:Microsoft-HTTPAPI/2.0 访问控制-允许-起源:* 访问控制-暴露-标头:* 内容-处置:附件;filename=order-414.pdf 日期:2015年2月11日星期三05:32:25 GMT 我只想在下载时获得文件名(or