2012-02-05 126 views
0

最初我开始将数据存储在数据库中以实现安全性和简单的备份目的。使用apache通用文件上传获取jsp上传文件的扩展名

所以我从来没有面对的问题来获得文件的扩展名。

现在我面临问题,因为数据库负载。

所以我计划,我将图像存储在一个文件夹中,我会显示这些图像。

但我需要重命名这些文件并将扩展存储在数据库中,以便我可以直接访问。

但是因为我是字符串数据库中的图像,我从来不关心文件的扩展名。

由于我必须访问图像文件,我必须知道扩展名。

如何在Apache通用文件上传中获取文件的扩展名。

+1

如果您可以提供从数据库中的图像,而无需知道文件扩展名,你为什么不能够从文件系统做同样的事情?浏览器不知道(也不关心)字节流的来源。它关心它的mime类型,但是你必须有办法了解它。如果你知道它,你应该能够决定使用哪个文件扩展名。 – 2012-02-05 16:29:10

+0

是的..!你是对的..! :( – KuKu 2012-02-05 17:13:55

+1

恐怕你没有真正理解@JBNizet ... – BalusC 2012-02-06 04:27:52

回答

3

这是我在代码中做到的。 item是一个FileItem或一个FileItemStream对象。

String format = "none"; 
String fileName = item.getName(); 
int index = fileName.lastIndexOf("."); 
if(index > 0){ 
       format = fileName.substring(index+1); 
       format = format.toLowerCase(); 
} 
+1

如果一个文件的扩展名像'archiveFile.tar.gz'那么该怎么办? – Lion 2012-11-19 14:19:03

+0

顶部指定图像文件的问题在你的情况下,你可以尝试使用int index = fileName.indexOf(“。”); – rickz 2012-11-19 15:04:26