2009-12-02 81 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中