【发布时间】:2011-12-18 18:20:46
【问题描述】:
有什么方法可以检查上传的文件是否为 excel 格式?我正在使用 Apache POI 库读取 excel,并在读取文件时检查上传的文件扩展名。
获取扩展的代码sn-p
String suffix = FilenameUtils.getExtension(uploadedFile.getName());
礼貌BalusC : uploading-files-with-jsf
String fileExtension = FilenameUtils.getExtension(uploadedFile.getName());
if ("xls".equals(fileExtension)) {
//rest of the code
}
我敢肯定,这不是正确的验证方式。
浏览按钮的示例代码
<h:inputFileUpload id="file" value="#{sampleInterface.uploadedFile}"
valueChangeListener="#{sampleInterface.uploadedFile}" />
上传按钮的示例代码
<h:commandButton action="#{sampleInterface.sampleMethod}" id="upload"
value="upload"/>
用户可以将文档或电影文件的扩展名更改为“xls”并上传,然后在读取文件时肯定会抛出异常。
只是希望有人能给我一些意见。
【问题讨论】:
-
您需要做多少验证?足以检查是否有人没有上传 csv?足以知道他们没有上传不同的办公文件(例如 .ppt)?或者足以知道它可以毫无错误地加载(不被截断等)?
-
是的,大多数情况都是这样。
-
如果你想检查所有这些,那么你唯一的选择就是如 BalusC 所说,并尝试在 POI 中打开它,如果格式错误则捕获异常。 (如果您只想做一些更简单的检查,那么还有其他选择)
标签: validation jsf apache-poi