java - 使用 JSP 将 Excel 数据上传到 Oracle 数据库

标签 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 (The system cannot find the file specified).

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

最佳答案

你的理解是错误的。我们无法访问用户的磁盘。 FileInputStream 是从您有权访问的磁盘中读取文件。在这种情况下,您的用户和服务器位于不同的计算机上,甚至可能相距甚远。

为此,您需要 multipart form以及一个可以为您读取多部分文件流的 Java 实用程序。

这是一个Apache Utility正是这样做的。

如果您更喜欢以简单的 Java EE 风格进行操作,那么这里是来自 oracle documentation for file uploading 的链接。 .

关于java - 使用 JSP 将 Excel 数据上传到 Oracle 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36744264/

相关文章:

java - JSF/Primefaces - 命令按钮 : open new browser tab without ViewScoped bean getting killed

java - 如何让定时器运行应用程序

javascript - 如何通过工具 'read-excel-file' 在 ReactJS 上导入 excel?

java - 通过Hibernate获取数据而不传递主键

java - 你好。我收到 tomcat 错误 HTTP 状态报告 404 - 未找到

java - Maven JAR - 未找到类异常

PHP 使用数据透视表将数据导出到 xls

excel - 为什么没有值时我的小计代码计数为 1?

sql - 在加载大量数据之前删除索引然后重新创建索引是否更有效?

sql - oracle中<number>d或<number>f是什么意思?