Foros del Web » Programando para Internet » PHP »

¿Cómo Forzar descarga de imagen con marca de agua?

Estas en el tema de ¿Cómo Forzar descarga de imagen con marca de agua? en el foro de PHP en Foros del Web. Buenos dias Cómo puedo hacer para que una imagen que se ha puesto una marca de agua en php se pueda descargar? He probado con ...
  #1 (permalink)  
Antiguo 01/02/2012, 08:38
 
Fecha de Ingreso: enero-2012
Mensajes: 12
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta ¿Cómo Forzar descarga de imagen con marca de agua?

Buenos dias

Cómo puedo hacer para que una imagen que se ha puesto una marca de agua en php se pueda descargar?

He probado con este codigo

download.php
Código PHP:
<?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 para llamar a descargar
Código PHP:
 <a href="download.php?f=http://www.nombreweb.com/marca.php?src=<?php echo $url?><?=$destino.'/'.$cad.'.'.$tipo?>">Descargar
Cuando intento descargar me sale este mensaje "No puedes navegar por otros directorios"







Este post es continuación de http://www.forosdelweb.com/f18/despues-subir-foto-ponerle-marca-agua-como-973179/
  #2 (permalink)  
Antiguo 01/02/2012, 10:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: ¿Cómo Forzar descarga de imagen con marca de agua?

añada encabezados de force download
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/02/2012, 10:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Cómo Forzar descarga de imagen con marca de agua?

Pues el mensaje de error te sale por que tú mismo estas poniendo esa validación, verifica tu tag <img> y precisamente en tu script PHP estas verificando que sí tienes un / te manda a ese die.
  #4 (permalink)  
Antiguo 01/02/2012, 17:59
 
Fecha de Ingreso: enero-2012
Mensajes: 12
Antigüedad: 12 años, 2 meses
Puntos: 0
De acuerdo Respuesta: ¿Cómo Forzar descarga de imagen con marca de agua?

chicos chicos, ya tengo la solucion y esto es gracias y regracias a Nemutagk, que ha estado guiandome en estre proceso, ahora si, posteo los enlaces de los temas que poste con mis dudas y fueron resuelto...

Post N° 1 Trata de arreglar el script de Subir Imagen Al servidor que posteo Pato (Primer Post) (Solucionado)
http://www.forosdelweb.com/f18/no-funciona-script-pato12-por-que-972930/

Post N° 2 Tema de Despues de subir La Imagen/Foto al Servidor, Ponerle una marca de agua a la misma(Solucionado)
http://www.forosdelweb.com/f18/despues-subir-foto-ponerle-marca-agua-como-973179/

Post N° 3. Como ultimo Post ¿Cómo Forzar descarga de imagen con marca de agua? (Solucionado)
http://www.forosdelweb.com/f18/como-forzar-descarga-imagen-con-marca-agua-973260/


Solución de este Ultimo Post N° 3

Para que la imagen aparesca con la marca de agua y a su ves pueda descargarse, se realiza mediante el siguiente codigo.

Archivo marca.php
Código PHP:
<?php
if (isset($_GET['tipo'])) {
if (
$_GET['tipo'] == 'ver') {
header('content-type: image/jpeg');
}else {
header ("Content-Type: application/force-download");
header ("Content-Disposition: attachment; filename=fotogenerada.jpg;" ); 
}
}else {
header('content-type: image/jpeg');

$watermark imagecreatefrompng('mimarcadeagua.png'); //aca ponen su imagen watemark en png 
$watermark_width imagesx($watermark); 
$watermark_height imagesy($watermark); 
$image imagecreatetruecolor($watermark_width$watermark_height); 
$image imagecreatefromjpeg($_GET['src']); 
$size getimagesize($_GET['src']); 
$dest_x $size[0] - $watermark_width 5
$dest_y $size[1] - $watermark_height 5
imagecopymerge($image$watermark$dest_x$dest_y00$watermark_width$watermark_height100); imagejpeg($image); 
imagedestroy($image); 
imagedestroy($watermark); 
?>

Para ver la imagen:
Código PHP:
  <a href="marca.php?src=<?=$destino.'/'.$cad.'.'.$tipo?>&tipo=ver">VER</a><br />
Para descargar
Código PHP:
<a href="marca.php?src=<?=$destino.'/'.$cad.'.'.$tipo?>&tipo=descargar">DESCARGAR</a>
Nuevamente agradecer al man Nemutagk en la guia, a maycolalvarez y Gatov por sus tips

Etiquetas: agua, marca
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 00:19.