如何连接浏览文件

时间:2012-02-07 07:54:45

标签: java file jsp file-upload odbc

我是编程新手。我正在尝试将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?

1 个答案:

答案 0 :(得分: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");