Сервлет doPut () - PullRequest
       14

Сервлет doPut ()

0 голосов
/ 28 июня 2010

У меня есть вопрос, касающийся метода doPut в реализации WebdavServlet на Java.

Если вы не знакомы с этим, я не думаю, что вам нужно.

doPut принимает 2 параметра, HttpServletRequest req и HttpServletResponse, соответственно

По сути, doPut помещает файл в ваш сервлет.

У меня есть несколько вопросов о том, как указать, какой ФАЙЛ ставить и ГДЕ он ставится.

Так что я думаю, что ГДЕ, куда он помещен, получено из getRelativePath (req).

Но я не имею представления о файловой части.

1 Ответ

3 голосов
/ 28 июня 2010

Содержимое файла доступно в теле запроса по номеру HttpServletRequest#getInputStream(). Просто напишите на любой OutputStream на свой вкус обычным способом Java IO , например. FileOutputStream, чтобы записать его в локальный файл.

Однако вам необходимо заранее знать кодировку содержимого, как декодировать тело запроса. Часто используется кодировка multipart/form-data. Для этого, Apache Commons FileUpload является стандартом по умолчанию. Нажмите на ссылку и изучите Руководство пользователя и Часто задаваемые вопросы , чтобы узнать, как его использовать.

Вас не должно интересовать, где находится файл на стороне клиента, просто потому, что вы все равно не можете получить к нему доступ. Вы сможете получить к нему доступ, только если сервер и клиент физически работают на одной и той же машине (и, следовательно, в одной и той же файловой системе диска), но обычно это не происходит в реальном мире.

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