Ver Mensaje Individual
  #431 (permalink)  
Antiguo 14/10/2008, 18:42
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Respuesta: Re: Tutorial ejemplo: Subir archivos a tu BD (guardando en la BD en binari

Cita:
Iniciado por Calisco Ver Mensaje
Bueno ... como muchos otros usuarios; copie el código y le di para adelante. Veo que al final del primer post (donde se publica este código) hay correcciones (creo que dos) con sus correspondientes fechas y comentarios.
Y ... como muchos otros usuarios, no podía ver las imágenes publicadas ni por listar_imagenes.php ni por ver.php. Lógico, si no anda ver.php no anda listar... aparecian las tan sitadas cruces.

Leí hasta la pagina 5 de todo este post, tratando de no ser un gil mas de la lista, pero no pude encontrar una solución a mi problema. Unos decían que era problema del servidor, otro un problema de los headers ... yo no podía encontrar la maldita falla.

Y es que, a mi parecer, en ver.php hay un error. La sentencia de búsqueda MySql $sql especifica los campos archivo_binario, nombre_archivo y archivo_peso:
Código PHP:
$sql "SELECT archivo_nombre,archivo_binario,archivo_tipo FROM archivos WHERE id='".$_GET['id']."'"
sin embargo ... mas abajo se asigna a $peso el valor arrojado por la búsqueda con mysql_result con el parametro ['archivo_peso'].
Código PHP:
$peso mysql_result($consulta,0,"archivo_peso"); 
Si replanteamos la búsqueda con
Código PHP:
$sql "SELECT * FROM archivos WHERE id='".$_GET['id']."'"
la cosa funciona de maravillas, por lo menos, a mi.

No entiendo como este código le puede haber funcionado a la mayoría.
No se que tengo en mi configuración de mi servidor que hacer que esto a mi no me funcione.
Realmente ahora me dí cuenta .. (he estado mucho tiempo fuera del foro, disculpen ante todo).

El problema principal no es la asignación de un "mysql_result()" a $peso .. o llamar a todos los campos de la tabla en la consulta SQL usando el "comodín/wildcard" (*) sino que por error/omisión en su momento me dejé el campo "archivo_peso" en la sentencia SQL.

En resumen:

ver_imagen.php

Código PHP:
$sql "SELECT archivo_nombre,archivo_binario,archivo_tipo FROM archivos WHERE id='".$_GET['id']."'"
Le falta el campo "archivo_peso". quedando:

Código PHP:
$sql "SELECT archivo_nombre,archivo_binario,archivo_tipo,archivo_peso FROM archivos WHERE id='".$_GET['id']."'"
Hay mucha gente que hace sus modificaciones a este script base .. dejando de usar "mysql_result()" y usando los típicos mysql_fetch_array() o xxx_row() ... etc. Por otro lado el hecho de que no se obtenga el peso del archivo binario afecta directamente a la composición de la cabecera HTTP y por ende a como se genera el archivo (imagen en este caso) cara al navegador de turno. No sé realmente como se comportaran todos los navegadores si se le indica un dato a transmitir de "cero bytes".

Corregí el código original con la respectiva nota de actualización. Gracias a este mensaje y una reciente cita al tuyo me dí "cuenta" del problema principal.

Un saludo,

PD: Gracias zetluis por reportar el problema archivo_mombre -> archivo_nombre en ver.php
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 03/12/2008 a las 12:47