我是编程新手。我正在尝试上传excel文件及其内容到MSSQL数据库。通过使用此代码,我可以获得文件浏览器窗口。提交后,它应该根据upload.jsp执行。
<input type="file" name="file" size="50" />upload.jsp使用for获取浏览的文件名,然后使用适当的查询将其内容上传到数据库中。
使用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");如何调用浏览的文件名fileName1而不是book1.xls?
发布于 2012-02-07 21:20:14
如果我对这个问题的理解是正确的,那么应该是这样的:
conn = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver(*.xls)};DBQ=**" + fileName1 + "**; readOnly= false");
ODBC编辑:从您的评论中,我意识到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");https://stackoverflow.com/questions/9172705
复制相似问题