【发布时间】:2013-01-03 09:20:49
【问题描述】:
我正在使用 Tomcat 的 WebDAV servlet,当我发出 PUT 请求时,我似乎无法获取标头“Content-Length”。
如何获取我“放入”的文件的内容长度?
【问题讨论】:
-
你需要澄清一下。当您执行 PUT 时,由 您 在请求中发送 Content-Length 标头字段。
标签: java tomcat servlets response webdav
我正在使用 Tomcat 的 WebDAV servlet,当我发出 PUT 请求时,我似乎无法获取标头“Content-Length”。
如何获取我“放入”的文件的内容长度?
【问题讨论】:
标签: java tomcat servlets response webdav
假设您的意思是您正在编写属于服务器端 PUT 操作的一部分的代码 - 即您正在扩展 webdav servlet 或其他东西。然后,如果客户端通过 PUT 发送了一个文件并且没有 content-length 标头,那么您需要缓冲字节(可能到磁盘),然后使用生成的缓冲数据为您提供长度。
客户端发送没有内容长度的文件是完全合法的。在这种情况下,他们只需断开 TCP 连接以指示 EOF。
请注意,如果您正在扩展 tomcat webdav servlet,您可能还需要考虑使用 milton.io。它是一个旨在允许可插入后端的 webdav servlet。它还附带了一个等效于 tomcat 的 webdav servlet 的文件系统实现。
【讨论】: