我对Java中WebdavServlet实现中的doPut方法有疑问。

如果您不熟悉它,我认为您不需要。

doPut接受两个参数HttpServletRequest req和HttpServletResponse resp。

基本上,doPut将文件放入servlet。

我对如何指定要放置的文件和放置位置有一些疑问。

因此,我认为放置在哪里是从getRelativePath(req)获取的。

但是我对文件部分一无所知。

最佳答案

该文件的内容在请求正文中由HttpServletRequest#getInputStream()提供。只需以OutputStream方式将其写入任何usual Java IO中即可,例如FileOutputStream将其写入本地文件。

但是,您需要事先知道内容编码如何解码请求主体。通常使用multipart/form-data编码。为了解析这一点,Apache Commons FileUpload是事实上的标准。单击链接并浏览用户指南和常见问题以了解如何使用它。

仅仅因为您仍然无法访问文件,您对文件在客户端的位置不感兴趣。只有当服务器和客户端都在同一台计算机(因此是同一磁盘文件系统)上运行时,您才可以访问它,但是在现实世界中通常不会发生这种情况。

10-08 03:25