2009-12-02 17 views
15

¿Es posible reanudar las subidas interrumpidas mediante HTTP Post? Estoy trabajando en un proyecto que carga varios archivos a un servidor HTTP. Gracias.reanudar las cargas usando HTTP?

Respuesta

9

Suponiendo que tiene el control a un nivel lo suficientemente bajo en el lado del cliente y del servidor de este proyecto, puede lograr esto a través de encabezados Content-Range en sus solicitudes POST (o PUT) que envían los datos.

+5

Salvo que el RFC 2616 no define cómo enviar contenido parcial en una solicitud del cliente, solo en una respuesta del servidor. Si la solicitud del cliente tuvo que pasar por un proxy HTTP, por ejemplo, los datos cargados pueden no funcionar correctamente si se cargan parcialmente. Es mejor usar FTP en lugar de HTTP para transferencias parciales de archivos. –

+7

La sección 9.6 (PUT) del RFC contiene esta oración: "El destinatario de la entidad NO DEBE ignorar ningún encabezado de contenido * (por ejemplo, rango de contenido) que no comprenda o implemente y DEBE devolver una respuesta 501 (no implementada) en esos casos." Para mí eso implica que un proxy necesitaría pasar ese encabezado, ¿no? En cualquier caso, se pensó que era porque mod_dav admite rangos en PUT para exactamente este propósito. – imaginaryboy

+1

¡Gracias por la respuesta! Ahora estoy cargando archivos por multipart/form-data, ¿puedo usar el encabezado Content-Range con él? También encontré algo llamado multipart/byteranges, ¿es algo que debería usar para reanudar las cargas? – 0pcl

2

Aquí es una demostración de lo que dijo Rubens: http://dnduploader.filkor.org/

Esta cosa 'envía varias piezas pequeñas de archivos y a reconstruir lado del servidor'
Fuente en Github.

2

así algo más de información sería útil

más fácil es usar http://resumablejs.com que utiliza

"API archivo HTML 5 para cortar el archivo en trozos" (como dijo Timmmm)


solo por cierto - FTP puede hacer esto también, pero podría estar deshabilitado P. ej. en ProFTP que está desactivado por defecto y un error común no está permitiendo que;), que tendría que añadir

AllowStoreRestart on 

a su proftpd.conf

Cuestiones relacionadas