我一直在搜索 net/http 代码,但还没有找到解决方案。我需要执行一个多部分 POST 请求,我已经弄清楚了,但是在上传中定期注入(inject)一个回调真的很好,这样我就可以增加一个进度条。有谁知道一种方法可以让代码执行 HTTP post 期间发送的每 X 个字节?
最佳答案
看起来您没有使用 Rails,但我认为最简单的方法是从客户端进行。
在浏览器设置中,您可以使用 Flash (SWFUpload) 或仅使用新的 XMLHttpRequest 内容向新浏览器提供进度条(上传在旧浏览器中仍然有效...只是没有进度条)。
它的工作原理与您描述的略有不同,但差异非常小。您是在询问服务器实际保存了多少数据。这些方法仅报告已向服务器发送了多少数据。
- SwfUpload(带进度条的 Flash 实现)- http://www.swfupload.org/
- 在旧版浏览器中使用进度条和漂亮的回退实现 AJAX 上传 - http://valums.com/ajax-upload/
- 关于 AJAX 上传如何与较新的浏览器一起工作的文档 - https://developer.mozilla.org/en/using_xmlhttprequest#Monitoring_progress
关于ruby - 获取 Ruby Net::HTTP POST 的上传进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3125074/