2013-07-16 208 views
0

您好,我正在製作一個servlet,它可以獲取圖像使用servlet 3.0獲取上傳圖像的名稱

我的servlet中的所有內容都能正常工作。唯一的問題是,我想知道上傳的圖像的名稱是什麼,以便我可以將其完整路徑存儲在數據庫中。我如何做到這一點?

這是上傳文件的代碼,但它並不提供給我原始圖像的實際名稱。 f.getName給我我的標籤的名稱。

Part f= request.getPart("imgCoverInserisci"); 
InputStream imageInputStream = f.getInputStream(); 
System.out.println("Path where image will be saved: "+request.getContextPath()+"/Immagini/"); 
    /*returns null*/  String  nomeFile=request.getParameter("imgCoverInserisci"); 
    f.getName(); //return name of input tag 
    FileOutputStream out = new FileOutputStream ("C:\\Users\\Salvatore\\Documents\\NetBeansProjects\\TestFumettopoli\\web\\Immagini\\copertineFumetti\\"+nomeFile); 
// write bytes taken from uploaded file to target file 
int ch = imageInputStream.read(); 
while (ch != -1) { 
        out.write(ch); 
        ch = imageInputStream.read(); 
} 
out.close(); 
imageInputStream.close(); 
+0

使用Apache公地,它在servlet的文件上傳模塊,並且還返回客戶端文件名 – 2013-07-16 09:30:16

+0

有沒有辦法做到在servlet的3.0? –

+0

是的夥計,它與servlet 3一起工作:) – 2013-07-16 09:41:38

回答

0

我以不同的方式解決了這個問題。每次發生Onchange事件時,我都會使用javascript來解析文件圖像的名稱。 javascript函數然後在隱藏的輸入標籤中分配文件的名稱。稍後,servlet只需要將其作爲參數讀取,就可以完成!

的JavaScript代碼是here