【发布时间】:2012-12-02 17:15:29
【问题描述】:
我有一个将文件上传到 REST 服务的 Java 桌面客户端应用程序。
所有对 REST 服务的调用都使用 Spring RestTemplate 类处理。
我希望实现一个进度条和取消功能,因为正在上传的文件可能非常大。
我一直在寻找一种在网络上实现此功能的方法,但没有成功。
我尝试实现自己的 ResourceHttpMessageConverter 并替换 writeInternal() 方法,但在实际发布请求之前,似乎在某种缓冲操作期间调用了此方法(因此在发送之前一次性读取流) .
我什至尝试过覆盖 CommonsClientHttpRequestFactory.createRequest() 方法并使用特殊的 writeRequest() 方法实现我自己的 RequestEntity 类,但出现了同样的问题(在实际发送帖子之前已读取所有流)。
我找错地方了吗?有没有人做过类似的事情。
我在网上读到的很多关于实现进度条的内容都谈到了停止上传,然后使用单独的 AJAX 请求轮询 Web 服务器的进度,这似乎是一种奇怪的方式。
非常感谢任何帮助或提示。
【问题讨论】:
-
这可能有你要找的东西stackoverflow.com/questions/5294532/…
-
感谢您的链接。不幸的是,给出的示例使用了低级 apache 库,所以我不清楚 Spring Rest 库中等效的 FileBody 类是什么,或者我如何注入自己的实现供他们使用。
标签: spring upload progress-bar multipart resttemplate