2016-04-20 95 views
0

我有一個帶有輸入類型文件的表單。使用JSP將Excel數據上傳到Oracle數據庫中

<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來上傳文件到服務器,然後訪問它? 請幫忙。

回答

1

你跟錯了。我們無法訪問用戶的磁盤。 FileInputStream用於從您有權訪問的磁盤讀取文件。在這種情況下,您的用戶和您的服務器位於不同的機器上,甚至可能與世界分離。

爲此,您需要一個multipart form和一個可以爲您讀取Multipart文件流的Java實用程序。

這是一個Apache Utility,確實如此。

如果您希望以簡單的Java EE風格進行操作,那麼這裏是oracle documentation for file uploading的鏈接。

相關問題