iphone - puedo - itunes
Continuar una descarga interrumpida en iPhone (3)
El único método que puedo pensar es dividir el archivo que está descargando en archivos más pequeños. Puedes usar el
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
método para determinar cuándo termina cada parte del archivo y reiniciar la descarga en la última parte que no se descargó.
Yo uso NSURLConnection para descargar archivos grandes desde la web en iPhone. Utilizo el método "didReceiveData" para anexar datos a un archivo en la carpeta Documentos. Funciona bien.
Si la descarga se interrumpe (por ejemplo, porque el usuario presionó el botón "inicio"), me gustaría poder seguir descargando la próxima vez que el usuario inicie mi aplicación, ¡y no desde cero!
Alguien puede ayudarme ?
(por cierto, me encanta este sitio, gracias a todos)
Mire el estándar HTTP para ver cómo se formaría una solicitud para iniciar una transferencia de un recurso desde un desplazamiento específico. No puedo encontrar ningún código de inmediato, lo siento.
ASIHTTPRequest tiene soporte fácil de usar para reanudar descargas:
http://allseeing-i.com/ASIHTTPRequest/How-to-use#resume
Alternativamente, averigüe cuántos datos ha descargado ya mirando el tamaño de los datos existentes, y establezca el encabezado ''Rango'' en su NSMutableURLRequest :
[request addValue:@"bytes=x-" forHTTPHeaderField:@"Range"];
..where x es el tamaño en bytes de los datos que ya tienes. Esto descargará datos a partir del byte x. A continuación, puede agregar estos datos a su archivo a medida que lo reciba.
Tenga en cuenta que el servidor web desde el que está descargando debe admitir descargas parciales para el recurso que está intentando descargar; envía el encabezado Aceptar rangos si es así. En general, no puede reanudar las descargas de contenido generado dinámicamente (por ejemplo, una página generada por un script en el servidor).