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