2009-12-02 78 views
15

是否可以使用HTTP Post重新开始中断上传?我正在开发一个将多个文件上传到HTTP服务器的项目。谢谢。恢复使用HTTP上传?

回答

9

假设您在此项目的客户端和服务器端都拥有足够低的控制权,您可以通过发送数据的POST(或PUT)请求中的Content-Range标头实现此目的。

+5

除了RFC 2616没有定义如何发送部分内容在客户端请求中,仅在服务器响应中。例如,如果客户端请求必须通过HTTP代理,则如果部分上传,则上传的数据可能无法正常工作。最好使用FTP而不是HTTP进行部分文件传输。 – 2009-12-04 02:42:42

+7

RFC的9.6节(PUT)包含这样一句话:“实体的接收者不能忽略任何不理解或实现的Content- *(例如Content-Range)头,并务必返回一个501(未实现)响应在这种情况下。“ 对我来说,这意味着代理将需要通过该标头,不是吗?无论如何,这个想法的发生是因为mod_dav完全支持PUT中的范围。 – imaginaryboy 2009-12-04 16:04:43

+1

感谢您的回复!我现在正在通过multipart/form-data上传文件,我可以使用Content-Range标题吗?我还发现了一些叫做multipart/byteranges的东西,是否应该用于恢复上传? – 0pcl 2009-12-23 10:01:52

2

以及一些更多的信息将是有益的

最易使用http://resumablejs.com它采用

“HTML5文件API切片文件分割成块”(如Timmmm所述)


只是顺便说一句 - FTP也可以做到这一点,但它可能会被禁用 E.g.在proftp的它在默认情况下和一个常见的错误屏蔽时,不能启用它),你将需要

AllowStoreRestart on 

添加到您的proftpd.conf中