2012-02-07 65 views
0

我是編程新手。我正在嘗試將excel文件及其內容上傳到MSSQL數據庫。通過使用此代碼,我可以獲得文件瀏覽器窗口。提交後它應該根據upload.jsp執行。如何連接瀏覽的文件

 <input type="file" name="file" size="50" /> 

upload.jsp用於獲取瀏覽的文件名,然後使用適當的查詢將其內容上傳到數據庫中。使用ODBC

我可以連接的Excel數據庫。但在這裏我需要提及Book1.xls。但我無法從上面的代碼中瀏覽文件名。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel 
Driver(*.xls)};DBQ=**book1.xls**; readOnly= false"); 

我使用此代碼訪問瀏覽文件名

String contentType = request.getContentType(); 
    out.println("<title>JSP File upload</title>"); 
    DiskFileItemFactory factory = new DiskFileItemFactory(); 
     // Create a new file upload handler 
    ServletFileUpload upload = new ServletFileUpload(factory); 
      // Parse the request to get file items. 
    List fileItems = upload.parseRequest(request); 
      // Process the uploaded file items 
    Iterator m = fileItems.iterator(); 
    FileItem fi = (FileItem)m.next(); 
    String fileName1=fi.getName(); 
    out.println("Uploaded Filename: " + fileName1 + "<br>"); 

我如何連接瀏覽文件名與ODBC。這意味着

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel 
    Driver(*.xls)};DBQ=**fileName1**; readOnly= false"); 

,而不是BOOK1.XLS如何調用瀏覽文件名FILENAME1?

+0

連接字符串只是一個字符串。看起來你知道如何連接它們(你已經在'println'中執行了這個操作)。你的問題到底是什麼? – Mat 2012-02-07 07:59:01

+0

我需要在DBQ = ** book1.xls **中連接那個+ fileName1 +; – user1193904 2012-02-07 08:44:18

回答

0

如果我理解正確的問題,這應該這樣做:

conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver(*.xls)};DBQ=**" + fileName1 + "**; readOnly= false");

編輯: 從您的意見,我意識到,ODBC驅動程序正在尋找磁盤上的文件,但在你的例子中你沒有把它寫到磁盤上。該DiskFileItemFactory 可能寫入到一個臨時文件的地方,但有沒有這樣的保證,它肯定不是「FILENAME1」。

所以,你需要的地方先寫文件了。可能類似於下面的代碼。這可以工作作爲編寫的,但有可能是與路徑的麻煩......我不知道,如果fi.getName()返回一個完整路徑或只是一個名字。無論如何,您應該爲這些文件設置一個文件夾,然後指定它的完整路徑。

File outFile = new File(fileName1); 
fi.write(outFile); 
conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver(*.xls)};DBQ=**" + fileName1 + "**; readOnly= false"); 
+0

: - 你是禮拜式,但那不行。而不是我剛開這個錯誤值java.sql.SQLException:[微軟]找不到[ODBC驅動程序管理器]數據源名稱並沒有指定默認驅動程序 瞭解更多:HTTP://本地主機:8080/trythis/up.jsp – user1193904 2012-02-08 05:51:15

+0

啊,抱歉!我現在看到了這個問題。我編輯了我的答案。讓我們知道這是否有幫助。 – EMS 2012-02-08 13:22:12