Foros del Web » Programando para Internet » PHP »

Descarga de archivo automatica desde una pagina web

Estas en el tema de Descarga de archivo automatica desde una pagina web en el foro de PHP en Foros del Web. Buenas, tengo una pagina web que al rellenar un formulario deberia descargar una imagen dependiendo la opcion seleccionada, funciona todo bien salvo que el archivo ...
  #1 (permalink)  
Antiguo 03/10/2011, 02:03
Avatar de ramiguens  
Fecha de Ingreso: mayo-2011
Mensajes: 57
Antigüedad: 12 años, 11 meses
Puntos: 4
Descarga de archivo automatica desde una pagina web

Buenas, tengo una pagina web que al rellenar un formulario deberia descargar una imagen dependiendo la opcion seleccionada, funciona todo bien salvo que el archivo que descargo me aparece con una "x" al abrirlo con el visor de imagenes y si lo abro con el photoshop me dice "No se ha podido cumplir porque el modulo de formato de archivo no puede descomponer el archivo" he probado a darle todos los permisos y hace lo mismo si pongo la url en el explorador y lo descargo manual me lo permite abrir... no sé que puede ser, agradezco cualquier idea, el codigo es el siguiente... (por cierto la descarga hace como si descargara toda la informacion, es decir aparece la barra con lo que pesa el archivo y como se va rellenando)


if ($Descarga2 == 1)
{


$root = "img/Descargas/";
$file = "5_bolsa_exterior_contrapicado3.jpg";
$path = $root.$file;
$type = '';

if (is_file($path)) {
$size = filesize($path);
if (function_exists('mime_content_type')) {
$type = mime_content_type($path);
} else if (function_exists('finfo_file')) {
$info = finfo_open(FILEINFO_MIME);
$type = finfo_file($info, $path);
finfo_close($info);
}
if ($type == '') {
$type = "application/force-download";
}
// Set Headers
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=$file");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $size);
// Download File
readfile($path);
} else {
die("File not exist !!");
}

}
  #2 (permalink)  
Antiguo 05/10/2011, 05:58
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Descarga de archivo automatica desde una pagina web

Lo unico que se me ocurre es que compruebes los valores posibles para Content-Transfer-Encoding. Tal vez para tu tipo de archivo necesites otro encoding. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 05/10/2011, 08:35
Avatar de ramiguens  
Fecha de Ingreso: mayo-2011
Mensajes: 57
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Descarga de archivo automatica desde una pagina web

gracias por el aporte, al final me funciono...

$archivo = 'img/Descargas/logotipo_ourego_sombra2.png';

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($archivo));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($archivo));
ob_clean();
flush();
readfile($archivo);

Etiquetas: imagenes, automatico
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.