2013-07-16 1 views
0

Привет, я делаю сервлет, который получает изображение отПолучение имени загруженного изображения с сервлетом 3.0

Все в моем сервлете отлично работает. Единственная проблема заключается в том, что я хочу знать, каково имя загруженного изображения, чтобы я мог хранить его полный путь в базе данных. Как мне так?

Это код, который загружает файл, но не дает мне фактического имени исходного изображения. 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 Commons, он имеет модуль для загрузки файлов в сервлет, а также возвращает имя файла –

+0

клиента есть ли способ сделать это в сервлета 3.0? –

+0

да чувак работает с сервлетом 3 тоже :) –

ответ

0

Я решил эту проблему по-другому. Я использовал javascript для анализа имени файла изображения каждый раз, когда происходило событие Onchange. Затем функция javascript назначила имя файла в скрытом теге ввода. Позже сервлет должен был только прочитать это как параметр, и трюк сделан!

Javascript код here