2013-10-09 2 views
0

Ниже приведен код, который я использовал для загрузки файла на сервер. Но код бросает каталог исключение или файл не найден ..Загрузка файла на сервер: исключение из файла или каталога исключение

   ResourceBundle rs_mail = ResourceBundle.getBundle("mail"); 
       String upload_path = rs_mail.getString("upload_path"); 
       File file = null; 
       FileItemFactory factory = new DiskFileItemFactory(); 
       ServletFileUpload upload = new ServletFileUpload(factory); 
       // Parse the request to get file items. 
       List fileItems = upload.parseRequest(request); 

       // Process the uploaded file items 
       Iterator i = fileItems.iterator(); 
       while (i.hasNext()) { 
        FileItem fi = (FileItem) i.next(); 
        File uploadDir = new File(upload_path); 
        if (!uploadDir.exists()) { 
         uploadDir.mkdir(); 
        } 
        file = new File(upload_path + file.separator + fi.getName()); 

        fi.write(file); 
       } 

Может ли одна указать на причину исключения ..

Содержание файла свойств

upload_path = ../../../upload

+2

Исключением совершенно ясно: «каталог или файл не найдены». Вы пробовали отлаживать свой код, чтобы определить, какой файл или каталог не существует? – Vulcan

+0

Да исключение вызвано в этой строке fi.write (файл); –

+0

Является ли 'upload_path' обычным файлом вместо каталога? Есть ли у 'fi' какие-либо слэши? – chrylis

ответ

1

Убедитесь, что вы также создать все родительские каталоги на пути к upload_path:

if (!uploadDir.exists()) { 
    uploadDir.mkdirs(); 
} 

Обратите внимание на использование mkdirs() вместо mkdir(). mkdir() не будет работать, если родительская структура не существует. mkdirs() также попытается создать необходимые родительские каталоги.

Вы также должны проверить возвращаемое значение, оба метода вернут false, если каталог не может быть создан.

+0

ОК. Будет проверять и возвращаться к вам –

+0

Ур ответ мне. Но проблема в пути. Я пытался создать папку в tomcat. Ubuntu блокировал его. Я должен рассмотреть контекст сервлета. Спасибо за помощь. –

Смежные вопросы