gpt4 book ai didi

java - 为什么我使用 JMimeMagic lib 获取 CSV 文件的 mimetype text/plain?

转载 作者:行者123 更新时间:2023-12-04 06:03:18 27 4
gpt4 key购买 nike

我正在使用 JMimeMagic 库来验证 CSV 文件上传。

对于 CSV 和所有其他文本文件(txt、JSP 等),它给我文本/纯 mime 类型。

logger.debug("Checking magic content");
MagicMatch match;
match = Magic.getMagicMatch(getPromotionOptIn().getUpload(),false);
logger.debug("Actual file mimetype=" + match.getMimeType());

我不应该为 CSV 文件获取 text/csv 吗? (See mime 类型的所有列表)。

或者我将验证放在 text/plain 上,认为它是一个有效的 CSV 文件,这很好。

最佳答案

由于 CSV 文件可以有多个不同的分隔符,我怀疑 csv 文件只是被识别为文本文件(这是真的)。​​

如果您看到一个文本文件,您如何确定它是一个 CSV 文件?文中是否有逗号、分号等?如果它们属于一个条目而分隔符是其他东西(如 |、#、@ 等)怎么办?

如果没有更多信息,您将很难确定,JMimeMagic 也会遇到同样的问题。因此它只会返回它确定的内容:该文件是一个文本文件。因此你“只”得到“文本/纯文本”。

我不知道那个库,但从文档/源看来你可以提示 *.csv 文件有 text/csv mime 类型使用Magic.addHint("csv", someMatcher)。请注意,您可能必须为第二个参数传递 true,否则这些提示可能会被忽略(从查看源代码来看似乎如此)。

这仍然取决于文件扩展名是否正确,即如果有人上传了包含其他内容的 .csv 文件,您将获得错误的 MIME 类型。

但是,JMimeMagic 似乎无论如何都不会做很多内容检查。至少我在 sourceforge/github 上找到的资源中没有找到太多。只有文本文件检测器,因此您可能必须为其他 MIME 类型和文件格式添加自己的内容检测器。

关于java - 为什么我使用 JMimeMagic lib 获取 CSV 文件的 mimetype text/plain?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8679365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com