[英]Passing sql file name from a jsp to a servlet for data import
我通过传递一个sql源文件来检索数据库,如下所示。
SERVLET代码:
String dbpath="M:\\mydb.sql";
String [] executeCmd1 = new String[]{current_drive+":\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysql", "--user=" + dbuser, "--password=" + dbpassword, dbname,"-e", " source "+dbpath};
runtimeProcess = Runtime.getRuntime().exec(executeCmd1);
那部分工作正常。 卡在这一部分,我希望dbpath是动态的,这样我将使用来自html5的sql文件
<input type="file" name="myfile">
在任何本地驱动器中,sql文件将是静态的,而不是静态的
dbpath="M:\\biometricdb.sql";
然后将该路径传递到我的servlet并按照此代码接收它。
String dbpath=request.getParameter("myfile");
这样做后,我只能得到文件名,而不能得到sql文件的完整路径。
我知道HTML5:文件API出于安全原因未采用文件绝对路径。 如何将那个路径传递给我的servlet? 还有其他方法可以将sql文件传递到servlet吗?
您无法获得的路径是CLIENT上的路径,这对您来说毫无价值。 您需要使用SERVER路径,因为它在服务器上将由mysql处理文件。
因此,在上载代码中,将文件保存到服务器上,然后使用保存文件的路径。
注意:要保存该文件,您要么需要使用Servlet API 3.0并使用request.getPart / request.getParts,要么需要一个类似Apache Commons File Upload的库来从请求中读取实际文件内容,除非您是使用像Spring这样可以以某种方式为您处理的框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.