Comunidad de diseño web y desarrollo en internet online

Forzar descargas con PHP

Citar            
MensajeEscrito el 07 Feb 2010 09:27 pm
hola a todos

pues buscando por la red un script para la descarga de imagenes os he encontrado estoy probando el codigo de la web para Forzar descargas en una web de imagenes que tengo pero al descargar el archivo lo hace en blanco me descarga un jpg pero sin nada

lo hago de la siguiente manera

Código :

<?php
    $extensiones = array("jpg", "jpeg", "png", "gif");
    $f = $_GET["f"];
    if(strpos($f,"/")!==false){
        die("No puedes navegar por otros directorios");
    }
    $ftmp = explode(".",$f);
    $fExt = strtolower($ftmp[count($ftmp)-1]);

    if(!in_array($fExt,$extensiones)){
        die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
    }

    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"$f\"\n");
    $fp=fopen("$f", "r");
    fpassthru($fp);
?> 


y la descarga asi

<a href="download.php?f=<?=$file?>">Descargar Imagen

a ver si alguien me puede orientar como solucionarlo

enhorabuena por el contenido de la Web anque acabo de aterrizar ya he visto varias cosas muy interesantes

un saludo

Por monray

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Feb 2010 04:54 am
ya revisaste si el fopen esta disponible en tu servidor ? si es asi entonces no podras abrir la imagen y por ende no podras hacer la descarga, si por el contrario tienes el fopen entonces revisa esta linea " header("Content-Disposition: attachment; filename=\"$f\"\n"); "

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 08 Feb 2010 05:16 pm
hola

si lo tengo activado en el servidor

Por monray

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Feb 2010 05:01 am
tambien e probado el cambio que me aconsejas y no funciona

¿que puedo hacer?

un saludo

Por monray

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2010 07:34 am
Yo encontré este script en internet(No recuerdo en donde) con el cual es posible descargar cualquier archivo mientras se encuentre en la ubicación dada. Lo que tienes que hacer es colocar los archivos en la carpeta archivos y cuando desees descargar un archivo deberas pasar su nombre por la url de la siguiente manera: www.misitio.com/index.php?file=miarchivo.zip y listo! Comenzara la descarga del archivo miarchivo.zip que se encuentra en www.misitio.com/archivos/miarchivo.zip.
<?


if (!isset($_GET['file']) || empty($_GET['file'])) { //Obtiene el nombre del archivo que esta determinado en la URL
exit();
}

$root = "archivos/"; //Aqui coloca el nombre de la carpeta en donde se encontrarán los archivos
$file = basename($_GET['file']);
$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";
}
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=$file");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $size);
readfile($path); }
} else {
die("No existe el archivo $path");
}

?>

Saludos.

Por adam_dinzel

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2010 04:26 pm
hola

no consigo hacerlo funcionar,no se que estare haciendo mal

un saludo

Por monray

3 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.