我正在使用Tomcat的WebDAV servlet,当我发出PUT请求时,我似乎无法获得标题“Content-Length”。
如何获取我正在“放置”的文件的内容长度?
答案 0 :(得分:1)
假设您的意思是您正在编写代码,这是服务器端PUT操作的一部分 - 即您正在扩展webdav servlet或其他东西。然后,如果客户端通过PUT发送了一个文件,并且没有内容长度的头,那么你需要缓冲字节(可能是磁盘),然后使用生成的缓冲数据来为你提供长度。
客户端发送没有内容长度的文件是完全合法的。在这种情况下,他们只需删除TCP连接以指示EOF。
请注意,如果要扩展tomcat webdav servlet,您可能还需要考虑使用milton.io。它是一个webdav servlet,旨在允许可插拔的后端。它还附带了一个等同于tomcat的webdav servlet的文件系统实现。