簡體   English   中英

將SQL文件名從jsp傳遞到servlet以進行數據導入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM