通过分段表格数据上传时如何知道文件大小?

Bre*_*eak 5 java servlets multipartform-data

我正在使用HTML客户端执行一个简单的应用程序,该应用程序将文件上传到服务器,并且必须显示进度栏:)

服务器是基于servlet的,一些servlet接收多部分内容,对其进行解析等。显然,每时每刻我都知道到目前为止接收到的字节数。但是,为了在客户端提供进度条的信息,servlet还需要文件的字节总数,该字节正被上传。知道从哪里获取字节总数吗?

谢谢!

ila*_*lex 0

内容的大小放置在 Content-Length 标头中(请参阅rfc2616)。request.getContentLength()在 Servlet 中,您可以通过或获取此标头的值reqest.getHeaders("Content-Length")

  • 因此,这个答案在技术上确实不正确...... HTTP 标头(POST 请求上只有一个)“Content-Length”是可选的,此外,还包括所有表单字段、开销字节等加上实际大小FILE 部分(这是OP询问的内容)。简而言之,HTTP 标头“Content-Length”不等于上传文件的大小。遗憾的是,正确的答案非常复杂。 (7认同)
  • 是的。Content-Length 包括其他字段的大小。我建议您使用 Apache File Upload lib 来解析 Http 请求。 (2认同)