我对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是事实上的标准。单击链接并浏览用户指南和常见问题以了解如何使用它。
仅仅因为您仍然无法访问文件,您对文件在客户端的位置不感兴趣。只有当服务器和客户端都在同一台计算机(因此是同一磁盘文件系统)上运行时,您才可以访问它,但是在现实世界中通常不会发生这种情况。