Как загрузить файл за пределы веб-сервера? - PullRequest
0 голосов
/ 07 апреля 2010

Я хочу загружать файлы вне веб-сервера, как на диске d, в сервлеты, но я не могу их загрузить.

Что мне нужно сделать, чтобы включить такие функции в Tomcat 6.0?

1 Ответ

2 голосов
/ 08 апреля 2010

Это должно просто сработать.Все, что вам в основном нужно сделать - это получить загруженный файл со вкусом InputStream из тела запроса.Для этого вы обычно используете Apache Commons FileUpload .Затем вы можете записать его любым OutputStream способом, который вам нравится Java IO , например FileOutputStream.

Предполагая, что вы на самом деле используете Apache Commons FileUpload, для которого требуется Apache Commons IO в качестве зависимости, вот базовый пример:

String filename = FilenameUtils.getName(fileItem.getName()); // Important!
File destination = new File("D:/path/to/files", filename);

InputStream input = null;
OutputStream output = null;

try {
    input = fileItem.getInputStream();
    output = new FileOutputStream(destination);
    IOUtils.copy(input, output);
} finally {
    IOUtils.closeQuietly(output);
    IOUtils.closeQuietly(input);
}

В качестве альтернативы вы также можете простоиспользуйте удобный метод Fileupload FileItem#write():

String filename = FilenameUtils.getName(fileItem.getName()); // Important!
File destination = new File("D:/path/to/files", filename);

fileItem.write(destination);

Дополнительные примеры, советы и рекомендации приведены в Руководстве пользователя FileUpload и FAQ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...