Foros del Web » Programando para Internet » PHP »

descarga de un archivo jpg

Estas en el tema de descarga de un archivo jpg en el foro de PHP en Foros del Web. Hola a todos. Aqui con un problemota!!! Les comento, quiero descargar un archivo, el cual cuando es de tipo JPG me sale error, se ve ...
  #1 (permalink)  
Antiguo 08/10/2012, 19:12
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
descarga de un archivo jpg

Hola a todos.

Aqui con un problemota!!!

Les comento, quiero descargar un archivo, el cual cuando es de tipo JPG me sale error, se ve que si lo descarga pero me dice que el archivo esta dañado, cuando descargo un archivo PDF no tengo problemas al descargarlo y abrirlo, el problema es unicamente en el JPG

Les dejo mi codigo para ver si me pueden hechar la manita con este problema,

Código PHP:
$nombresubstr($enlacestrpos($enlace'/')+1); //obtengo solo el nombre

header ("Content-Disposition: attachment; filename=".$nombre."\n\n");
if (
strpos($nombre'jpg') or strpos($nombre'jpeg')){//si es una imagen
    
echo "<br> ENTRO A LA IMAGEN";
    
header('Content-Type: image/jpeg');
}else{
    echo 
"<br> NOOOOO IMAGEN";
    
header ("Content-Type: application/octet-stream");
}


header ("Content-Length: ".filesize($enlace));
readfile($enlace); 
De antemano muchas gracias!!!
  #2 (permalink)  
Antiguo 08/10/2012, 19:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: descarga de un archivo jpg

¿Estás consciente de lo que pueden provocar los echos antes de los headers y el contenido binario de los archivos?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/10/2012, 20:46
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: descarga de un archivo jpg

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Estás consciente de lo que pueden provocar los echos antes de los headers y el contenido binario de los archivos?
Hola gracias por contestar, pero me agarras en curva con tu pregunta. ¿A que te refieres con que si estoy consciente?
  #4 (permalink)  
Antiguo 08/10/2012, 22:01
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: descarga de un archivo jpg

http://www.php.net/manual/es/function.header.php
a lo que dice acá se refiere.
  #5 (permalink)  
Antiguo 09/10/2012, 09:08
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: descarga de un archivo jpg

Cita:
Iniciado por rodrigo791 Ver Mensaje
Hola.

Ya lei lo que me mandaste pero la verdad sigo sin entender, y es que el codigo si me descarga los archivos PDF sin problema, el problema lo tengo en las imagenes que cuando los descarga dice que no los puede abrir, ya comente los "echo" que tenia pero sigue sin funcionar. no se si me falte una instruccion o sobre algo espero me puedan ayudar

Última edición por calakra; 09/10/2012 a las 09:30 Razón: mas informacion
  #6 (permalink)  
Antiguo 09/10/2012, 10:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: descarga de un archivo jpg

Lo mejor es que muestres el código completo, así es complicado ver donde cometes el error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/10/2012, 10:11
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: descarga de un archivo jpg

Cita:
Iniciado por pateketrueke Ver Mensaje
Lo mejor es que muestres el código completo, así es complicado ver donde cometes el error.
Hola ahi te va

Código PHP:
<?php
include 'inc/conection.php';

$link=Conectarse();
$QUERY="select archivo from tabla where id=".$_GET['id']."";//traigo la ruta del archivo
$result=mysql_query($QUERY,$link)or die("mensaje de error".mysql_error());
$totEmp mysql_num_rows($result);
if (
$totEmp0
{
    
$rowEmp mysql_fetch_assoc($result);
    
$enlace=$rowEmp['archivo'];
}
mysql_free_result($result);
mysql_close($link);
$nombresubstr($enlacestrpos($enlace'/')+1); //obtengo solo el nombre
header ("Content-Disposition: attachment; filename=".$nombre."\n\n");
if (
strpos($nombre'jpg') or strpos($nombre'jpeg')){//si es una imagen
     
header('Content-Type: image/jpeg'); 
}else{
    
header ("Content-Type: application/octet-stream");
}
header ("Content-Length: ".filesize($enlace));
readfile($enlace);
?>
  #8 (permalink)  
Antiguo 09/10/2012, 10:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: descarga de un archivo jpg

1. Si tu script de conexión es puro código PHP edita el script y borra el último ?>
2. Has lo mismo con tu script actual para evitar posible espacios
3. Si tienes alguna URL donde podamos ver la descarga
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 09/10/2012, 10:25
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: descarga de un archivo jpg

Cita:
Iniciado por pateketrueke Ver Mensaje
1. Si tu script de conexión es puro código PHP edita el script y borra el último ?>
2. Has lo mismo con tu script actual para evitar posible espacios
3. Si tienes alguna URL donde podamos ver la descarga
Hola, gracias por contestar
Ya quite todos los espacios del archivo conection, y sigue sin funcionar par archivos JPEG, degraciadamente no puedo darles acceso pues el servidor esta en una intranet y no lo manejo yo, pero el problema es unicamente con las imagenes.
ya estoy pensando en redireccionar a la imagen para que se vea en pantalla, y si lo quieren guardar que le den click derecho, o aun se puede hacer algo mas??
  #10 (permalink)  
Antiguo 09/10/2012, 10:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: descarga de un archivo jpg

La única causa de que un archivo se descargue corrupto es que sus datos no estén íntegros, o bien tenga datos de mas.

Con el nivel de oscuridad que nos manejas la información es imposible adivinar.

¿Has intentado sólo enviar las cabeceras del tipo y readfile() no más?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 09/10/2012, 10:51
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: descarga de un archivo jpg

Cita:
Iniciado por pateketrueke Ver Mensaje
La única causa de que un archivo se descargue corrupto es que sus datos no estén íntegros, o bien tenga datos de mas.

Con el nivel de oscuridad que nos manejas la información es imposible adivinar.

¿Has intentado sólo enviar las cabeceras del tipo y readfile() no más?
Hola.

Sip ya lo intente, pero para ya adelantarme lo que hice lo deje asi, cuando es una imagen solo lo redirecciono a la imagen par que lo vea en el browser, afortunadamente si me descarga sin bronca los PDF, asi que espero que con eso no se tenga bronca, si no lo quieren así al rato estare molestandolos de nuevo.

Muchas gracias por la ayuda!!

Etiquetas: jpg
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 23:34.