【发布时间】:2013-09-03 17:07:14
【问题描述】:
现在我正在尝试使用此代码上传部分大文件,但只有在整个文件传输后才调用方法(我猜是到 Spring 的临时位置)。我需要动态处理上传。是否有任何 Spring 参数允许更早地调用处理程序(并仅使用标头和流对其进行参数化)?
@RequestMapping(value = "uploadVideo", method = POST)
public
@ResponseBody
String uploadVideo(InputStream stream,
@RequestHeader(value = "Range") String rangeHeader,
@RequestHeader("FileName") String fileName) {
// handle stream
}
【问题讨论】:
-
你说的只有在整个文件传输之后是什么意思?
-
客户端发送完内容后。
-
客户端发送时不可能这样做。您的 servlet 容器具有从 HTTP 请求中读取字节的套接字实现。当所有这些字节都被读取时,它会为它们提供一个
InputStream给你的 Spring 的DispatcherServlet,然后它可以将它们传递给你的处理程序方法。 -
好的..谢谢。你能建议我另一种可能的解决方案吗?我可以用什么代替 Spring 的控制器来操作流?
-
为什么要在收到之前对流进行操作。这不太像 HTTP。
标签: java spring post spring-mvc stream