未安装MS Office时上传CSV文件

时间:2018-09-06 15:43:18

标签: java excel csv mime-types

我在Tomcat 8上托管了一个Java Web应用程序。可以在应用程序中上传CSV文件。

控件使用Struts文件标签,例如:

<html:file name="form" property="csvFile" 
    accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />

在测试中,它在OS已安装MS Office的地方运行良好,因为当从浏览器MIME注册表设置或OS注册表中存在MS-Office时,它能够读取application / vnd.ms-excel或text / csv 。

但是,如果环境中未安装MS-Office,则文件内容类型将被视为application / octet-stream,而不是application / vnd.ms-excel或text / csv。

因此,基本上,当操作系统无法确定文件的内容类型时,它默认为application / octet-stream。

处理此类行为的最佳方法是什么?有可能某些最终用户可能根本没有安装MS Office,或者他们可能完全在某些不知道CSV \ Excel的MIME类型的操作系统上。在这种情况下,有效的CSV \ Excel文件将被视为应用程序/八位字节流,因此控件将不允许上传此类文件。

我已经阅读了以下内容:How is mime type of an uploaded file determined by browser?。但是我不确定如何解决这个问题。在Tomcat级别的MIME类型上可以做些什么吗?

谢谢!

0 个答案:

没有答案