2012-09-10 16 views
8

Tengo un código que descarga una imagen de un enlace falso. He mirado en otros comentarios/sitios pero nada me ha ayudado a encontrar la solución al molesto:Error al cargar el recurso: Carga de cuadro interrumpida: Agian

"Error al cargar el recurso: la carga del marco interrumpida"

mis encabezados PHP son después de leer el valor GET:

header("Pragma: public"); // required 
header("Expires: 0"); 
header("Cache-Control: private",false); // required for certain browsers 
//header('Content-Length: '. @filesize($id)); 
header('Content-Type: '.$mim); 
header('Content-Disposition: attachment; filename="'.$date.basename($fileName).'"'); 
header('Content-Transfer-Encoding: binary'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
readfile($fileName); 

y tengo la escritura jQuery que llama a un iframe para descargar el archivo:

$('body').append('<iframe class="download" src="download.php?id='+downloading+'" style="visibility:hidden;" width="0" height="0"></iframe>'); 

que descarga el archivo correctamente, pero muestra un error en º ¿Consola, por favor avíseme si es reparable?

Respuesta

3
header("Pragma: public"); // required 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); // required for certain browsers 
header("Content-type: application/x-unknown"); // I always use this 
header("Content-Disposition: attachment; filename='theFilename.ext'"); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: 177998"); // you might want to set this 
readfile('/the/url/to/theFilename.ext'); 

Esto funciona ;-)

+0

Gracias por su respuesta, ¿la longitud del contenido importa de qué tamaño es ... qué pasa si el archivo es más grande que 177998? – Jason

+0

Establezca la duración del contenido a su longitud de contenido real ... para ser sincero, en realidad eliminé la longitud del contenido por completo y el script funcionó perfectamente. –

+2

no funciona en safari – fdrv

0

bien, así que a través de una convo con vimeo, y averiguar que el problema se debía a Content-Disposition: attachment. Me dijeron que este es un problema que se hereda con los navegadores. No debe usar un DNS diferente para cargar recursos, por lo que funcionará, pero los navegadores no estarán contentos con él.

Cuestiones relacionadas