【问题标题】:Passing sql file name from a jsp to a servlet for data import将 sql 文件名从 jsp 传递到 servlet 以进行数据导入
【发布时间】:2014-03-27 10:20:02
【问题描述】:

我通过以下方式传递 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: File API 出于安全原因不采用文件绝对路径。我如何将该文件路径传递给我的servlet?有没有其他方法可以将sql文件传递给servlet?

【问题讨论】:

    标签: java mysql html jsp servlets


    【解决方案1】:

    你没有得到的路径是 CLIENT 上对你毫无价值的路径。您需要使用 SERVER 路径,因为它在服务器上,该文件将由 mysql 处理。

    所以在上传代码中,将文件保存到服务器上,然后使用您保存的路径。

    注意:要保存它,您需要使用 Servlet API 3.0 并使用 request.getPart/request.getParts,或者您需要像 Apache Commons File Upload 这样的库来从请求中读取实际文件内容,除非您正在使用像 Spring 这样的框架,它可以以某种方式为您处理。

    【讨论】:

    • 谢谢@developerwjk。我将按照您的说法将文件上传到服务器,然后从那里传递路径。这就是我需要的澄清。
    猜你喜欢
    • 2013-06-20
    • 2013-01-13
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多