使用JSP将Excel数据上载到Oracle数据库

时间:2016-04-20 12:46:40

标签: java excel oracle jsp

我有一个带有输入类型文件的表单。

<form id="upload" action="fileUpload.jsp" method="post">
        <input type="file" id="qns" name="qns" accept=".xls,.xlsx"><br><br>
        <input type="submit" id="uploadFile" value="Upload File">
</form>

用户应该能够浏览到excel文件并在提交时,我希望将Excel数据上传到Oracle XE数据库(我使用的是apache POI)。

但是,在fileUpload.jsp页面中,我无法访问浏览的文件,因为它只提供文件名而不是整个路径。

fileUpload.jsp中的代码是:

String filename = request.getParameter("qns");
InputStream input = new FileInputStream(filename);    
POIFSFileSystem fs = new POIFSFileSystem(input);

错误:

  

java.io.FileNotFoundException:Abc.xls(系统找不到   文件指定)。

我是否需要通过servlet将文件上传到服务器然后访问它? 请帮忙。

1 个答案:

答案 0 :(得分:1)

你错了。我们无法访问用户的磁盘。 gridData.heightHint = table.getItemHeight() * 20; 是从您有权访问的磁盘中读取文件。在这种情况下,您的用户和服务器位于不同的计算机上,甚至可能是世界分开的。

为此你需要一个multipart form和一个Java实用程序,它可以为你读取Multipart文件流。

这里有一个Apache Utility就是这样。

如果您更喜欢以纯Java EE风格进行,那么这里是oracle documentation for file uploading的链接。