Ответ 1
Когда вы вызываете новый файл, вы должны указать имя файла, а не только каталог, в который вы хотите поместить свой файл.
Попробуйте что-то вроде
File file = new File("D:/Data/" + item.getFileName());
У меня есть следующий код:
List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
File file = new File("D:/Data");
}
}
Когда я пытаюсь сохранить файл, я получаю следующую ошибку
java.io.FileNotFoundException: D:\Data (Access is denied.)
Что может быть причиной и как я могу это решить? У меня есть права на чтение и запись в этой папке.
Когда вы вызываете новый файл, вы должны указать имя файла, а не только каталог, в который вы хотите поместить свой файл.
Попробуйте что-то вроде
File file = new File("D:/Data/" + item.getFileName());
Не совсем в этом вопросе, но может быть полезно. Я получил это исключение, когда я вызываю mkdirs() в новый файл вместо его родительского
File file = new java.io.File(path);
//file.mkdirs(); // wrong!
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
file.createNewFile();
}
Вам необходимо установить разрешение для пользовательских элементов управления.
У меня есть поиск этой проблемы, и я получил следующие ответы:
"C:\Program Files\Apache-tomcat-7.0.69\"
удалить дополнительную обратную косую черту (\
)Ваша проблема будет решена.
Убедитесь, что каталог существует, у вас есть разрешение на доступ к нему и добавление файла в путь для записи журнала:
File file = new File("D:/Data/" + item.getFileName());