Foros del Web » Programando para Internet » PHP »

Tutorial ejemplo: Subir archivos a tu BD (guardando en la BD en binario)

Estas en el tema de Tutorial ejemplo: Subir archivos a tu BD (guardando en la BD en binario) en el foro de PHP en Foros del Web. Hola Jam: SOS GRANDE. Gracias a tu pequeño comentario solucioné el problema. Gracias. AL buen amigo Cluster un fuerte abrazo. Pues gracias a él Logré ...

  #301 (permalink)  
Antiguo 14/11/2005, 19:26
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Hola Jam:
SOS GRANDE. Gracias a tu pequeño comentario solucioné el problema. Gracias.
AL buen amigo Cluster un fuerte abrazo. Pues gracias a él Logré avanzar bastante.
Gracias a Ustedes, Después de mucho que encuentro la solución.

SAludos.
  #302 (permalink)  
Antiguo 14/11/2005, 19:26
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... .
1) Puedo ver perfectamente lo que te ha dicho Cluster... no es necesario copiar y pegar todo.
2) Tienes la opción de citar mensajes; se entiende mejor, así como lo haz hecho se confunde entre tus palabras y la de la cita (que cita a su vez tu otro mensaje ).
3) El que manejes DreamWeaver no tiene relevancia. PHP es un lenguaje de programación por sí solo, no importa el editor que manejes. Por eso muchos te recomendarán (busca en el foro "Editores") trabajar con el Notepad ú otro editor de texto plano.
4) ... te hice un comentario, no respondes al mismo.

Haciendola de adivino, que este sea tu archivo mostrar.php:
Código PHP:
<?php require_once('Connections/conecion01.php'); ?>
<?php
mysql_select_db
($database_conecion01$conecion01);
$query_Recordset1 "SELECT * FROM rugs_carpets";
$Recordset1 mysql_query($query_Recordset1$conecion01) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<table width="200" border="1">
<tr>
<td><?php echo $row_Recordset1['codrugs']; ?></td>
<td><?php echo $row_Recordset1['name']; ?></td>
<td><?php echo $row_Recordset1['shape']; ?></td>
<td><?php echo "<img src=\"ver.php?id=".$row_Recordset1['id']."\">"?></td>

</tr>
</table>
</body>
</html>
<?php
mysql_free_result
($Recordset1);
Suponiendo solo tienes problemas con la imágen y todos los demás datos se muestran bien (ve que solo continué con la variable de los otros datos como te había dicho) y que estás seguro que es el campo "image_1" donde tienes los datos en binario (no lo mensionas).

Suerte!

Edito:
Chocamos! . Escribimos al mismo tiempo (vaya exáctitud)... Que bueno que lo hayas resuelto . Ve que también tienes la opción de editar mensajes!!!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #303 (permalink)  
Antiguo 16/11/2005, 16:12
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Amigos:
Ahora tengo otro problema. AL momento de ingresar las imágenes a la base de datos via formulario, me salé ....Column 'image_1' cannot be null...A qué se puede deber..
Gracias.
Estoy en línea
  #304 (permalink)  
Antiguo 16/11/2005, 23:36
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Eso, que e valor de esa columna no puede estar vacio. Así lo tienes especificado.

Si tienes phpMyAdmin explora la estructura de tu tabla, ve las propiedades del campo "image_1", hay un listbox con 2 opciones: "null" y "not null"; seguramente lo tienes como "not null", cambialo.

La pregunta es: ¿estás utilizando este tutorial de Cluster?; pareciera que no así que te sugiero que crees un nuevo tema para consultas que no tienen que ver con este tema (específicamente el tutorial de Cluster), especifica código y demás cuestiones necesarias.

Un saludo!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #305 (permalink)  
Antiguo 17/11/2005, 01:41
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Hola Jam:
Ahora si he seguido el tutorial de cluster. Cuando lo qjecuto, aparentemente funciona. Pero, cuando jalo las imágenes en una página desde la base de datos, las imágenes salen con una x. Pero las imágenes que he almacenado directamente desde el phpmyadmin si se visualizan. Aquí te envío elos códifos.

************************
FORMULARIO INGRESO.PHP

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form action="add.php" method="post" enctype="multipart/form-data" name="form1">
<p>
codigo
<input name="codrugs" type="text" id="codrugs">
</p>
<p>
nombre
<input name="name" type="text" id="name">
</p>
<p>
<input name="image_1" type="file" id="image_1">
</p>
<p>
<input type="submit" name="Submit" value="Enviar">

</p>
</form>
</body>
</html>
*******************************************

********************************************
ADD.PHP

<?php
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción:
// No se comprueba aqui si se ha subido correctamente.


//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","adwebper_nano","nano") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("adwebper_ppunchay",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.

//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO rugs_carpets (codrugs, name, image_1) VALUES ('$codrugs', '$name','$image_1')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");

exit;
?>

Nota: He eliminado algunos códigos porque en mi tabla no tenía los campos que se estaban usando. ¿ Crees que el haber eliminado algunos códigos haya sido el errror ?
*************************************

Gracias por tu respuesta.
  #306 (permalink)  
Antiguo 17/11/2005, 01:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
cuando jalo las imágenes en una página desde la base de datos, las imágenes salen con una x
No muestras el código en el cuál estás mostrando las imágenes... es necesario el archivo ver.php que será llamado desde mostrar.php
Cita:
He eliminado algunos códigos porque en mi tabla no tenía los campos que se estaban usando. ¿ Crees que el haber eliminado algunos códigos haya sido el errror ?
El código que muestras esta mal... quitaste todo el código importante, no haces nada con el upload del archivo ($_FILES [...]), no lees al archivo binario (fopen(), fread())... te haz salido completamente del tutorial .

¿Estás seguro de querer guardar los datos en binario?. ¿por qué no guardas simplemente la ruta y haces un upload común?; es más simple y efectivo. Lee la FAQ#12.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #307 (permalink)  
Antiguo 17/11/2005, 05:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
hna_no

Si has modificado el código original de este tutorial para adaptarlo a tus necesidades, te recomiendo iniciar un nuevo tema, será más claro para ti y no mezclaremos cosas en este mensaje.

Aprovecha en ese mensaje nuevo para indicar TODO el código completo que tu usas y estructura de tus tablas de tu BD (como te quedaron)

Un saludo,
  #308 (permalink)  
Antiguo 21/11/2005, 20:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 1
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola Caricato
Vi su ejemplo en el demo que tiene, me parece fenomenal, yo necesito su orientación para un proyecto de bases de datos en la web: quiero mostrar docentes con su respectiva foto y otras descripciones, si fuera tan amable de orientarme sobre ese proceso, se lo agradezco y muchas gracias.
Pedro Luis Gómez
Colombia, Huila, Neiva
  #309 (permalink)  
Antiguo 22/11/2005, 05:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por pelugo22
Hola Caricato
Vi su ejemplo en el demo que tiene, me parece fenomenal, yo necesito su orientación para un proyecto de bases de datos en la web: quiero mostrar docentes con su respectiva foto y otras descripciones, si fuera tan amable de orientarme sobre ese proceso, se lo agradezco y muchas gracias.
Pedro Luis Gómez
Colombia, Huila, Neiva
Inicia un nuevo tema con tu caso concreto ..

Sólo te puedo comentar que este tutorial trabaja el tema de manejar archivos (cualquiera no sólo imagenes) sobre tu BD en modo binario .. no es la única solución ni tal vez la mejor según el caso, por eso te invito a:

1) leer todos los mensajes de este tema
2) no sé si te confundistes, pero caricatos hizo su própio ejemplo (en base tal vez a algunas cosas de este pero no confundas scripts/temas)

Un saludo,
  #310 (permalink)  
Antiguo 23/11/2005, 06:14
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
De acuerdo

Buenas... no esta de mas agradecer tu colaboracion con los miles de desarrolladores que usamos tu sapiensia!... gracias

Te consulto si has podido cambiar el ver_thumbnail.php para que funcione con GIF y PNG ????

he probado con esto en el final pero no funca:

Código PHP:
        // Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
    
switch($type){
        case 
"image/jpeg":imagejpeg($dst_img,'',100);
           break;
        case 
"image/jpg":imagejpeg($dst_img,'',100);
           break;
        case 
"image/gif":imagejgif($dst_img,'',100);
           break;
        case 
"image/png":imagejpng($dst_img,'',100);
           break;
    } 
__________________
Keep it simple and keep it fast.

Última edición por Viet; 23/11/2005 a las 06:47
  #311 (permalink)  
Antiguo 23/11/2005, 07:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías concretar "no funciona" .. que sucede exactamente.

De todas formas .. supongo que tendrás presente para esa modificación de tomar el Tipo (fomato MIME) de la imagen que obtienes de la BD:
Código PHP:
// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG 
    
Header ("Content-type: image/jpeg"); 
por:

Código PHP:
$type mysql_result($consulta,0,"archivo_tipo"); 

// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG 
    
Header ("Content-type: ".$type); 
Por lo demás .. sobre el uso de las funciones:

imageXXXX()

tienes bastantes errores de uso y de llamadas a esas funciones.

No es imagejpng() .. sino imagepng() por ejemplo .. tampoco todas tienen el 3er parámetro (sólo imagejpeg() ...) y sobre que te funcione imagegif() depende de la versión de GD que uses (no todas las versiones permiten generar GIF) ...

Revisa la documentación sobre las funciones GD:

www.php.net/gd

Un saludo,
  #312 (permalink)  
Antiguo 23/11/2005, 10:42
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
Tienes toda la razón muchas cosas estaban muy mal! .
"No funciona" en mi caso quiere decir que no me muestra resultado(solo el clasico cuadradito de una imagen no cargada), ahora si miro los el archivo de errores veo que me da en la linea 20 ( $img = imagecreatefromstring($imagen);) este error No GIF support in this PHP build.

Por lo que leí si lo soporta la funcion, como puedo ver que build de PHP tengo ? Puede ser eso?

Por si se les ocurre otra cosa les paso el cod completo :
Código PHP:
<?php

// OJO, sólo funciona con imagnes en formato JPEG ...  justo lo que estoy tratando de ampliar

if(isset($_GET['id'])) {

    
$conexion=mysql_connect("localhost","","") or die ("no se ha podido conectar a la BD");
    
mysql_select_db("test") or die ("no se ha podido seleccionar la BD");
    
$sql "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
    
$consulta mysql_query($sql,$conexion);
    
$imagen mysql_result($consulta,0,"archivo_binario");   
    
$type mysql_result($consulta,0,"archivo_tipo");

    
Header("Content-type: $type");


    
// Generar el thumbnail:

    // Se crea la imagen desde el campo binario de la BD
    
$img imagecreatefromstring($imagen);

    
// Tamaño del Thumbanil (de la imagen a generar ..)
    
$picsize 223;
    
    
// Se obtienen los datos del ancho y alto de la imagen.
    
$new_w imagesx($img);
    
$new_h imagesy($img);

    
// Se calcula la relación alto/ancho
    
if($new_w>0){
         
$aspect_ratio $new_h $new_w;
        }else{
            
$spect_radio 1;
            echo 
"lio: $new_w";
        }
    
    
// Se ajusta al nuevo tamaño
    
$new_w $picsize;
    
$new_h abs($new_w $aspect_ratio);

   
// Se crea la mascara de la imagen nueva
    
$dst_img ImageCreateTrueColor($new_w,$new_h);

    
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img)); 
         
          
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
    
switch($type){
        case 
"image/jpeg":imagejpeg($dst_img,'',100);
           break;
        case 
"image/jpg":imagejpeg($dst_img,'',100);
           break;
        case 
"image/gif":imagegif($dst_img);
           break;
        case 
"image/png":imagepng($dst_img);
           break;
        case 
"image/bmp":imagewbmp($dst_img);
           break;
    }

}

?>
Como siempre Cluster.. muchas gracias por tu tiempo!!!
__________________
Keep it simple and keep it fast.
  #313 (permalink)  
Antiguo 23/11/2005, 10:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Por lo que leí si lo soporta la funcion, como puedo ver que build de PHP tengo ? Puede ser eso?
Lo puedes ver en un:
Código PHP:
<?
phpinfo
();
?>
ahí veras un bloque de información sobre GD ..

El soporte para GIF depende de la versión de GD (no recuerdo cifras exactas) estaba soportado para "leer" un gif (imagecreatefromgif()) pero no para hacer un imagegif() (generar la imagen GIF).

Un saludo,
  #314 (permalink)  
Antiguo 26/11/2005, 08:45
 
Fecha de Ingreso: junio-2003
Mensajes: 217
Antigüedad: 20 años, 10 meses
Puntos: 0
Probé el código y me da el error: "No se pudo insertar los datos en la base de datos" ¿a q se debe Cluster?
  #315 (permalink)  
Antiguo 27/11/2005, 18:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por FlamingoX
Probé el código y me da el error: "No se pudo insertar los datos en la base de datos" ¿a q se debe Cluster?
Probablemente tengas un problema en la definición de tu tabla de archivos u otro problema de SQL o conexión. No sé si has hecho modificaciones al tutorial tal cual se entrega .. en cualquier caso usa mysql_error() para ver el error exacto que tienes en tu caso:
Código PHP:
mysql_query($consulta_insertar,$conexion) or die(mysql_error()); 
Un saludo,
  #316 (permalink)  
Antiguo 09/02/2006, 18:13
 
Fecha de Ingreso: diciembre-2004
Mensajes: 4
Antigüedad: 19 años, 4 meses
Puntos: 0
Hacer Lo Mismo Con Archivos De Sonido Mp3

Q Tal Amigos, Estoy Queriendo Hacer Una Aplicacion Para Subir Archivos Mp3 A Mi Bd Mysql Con Php. Luego Hacer Un Form De Busqueda De La Cancion, Una Vez Encontrada La Debe Reproducir, Me Pueden Ayudar. Soy Novato.

Gracias De Antemano.
  #317 (permalink)  
Antiguo 10/02/2006, 04:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La filosofía y scripts para subir tus archivos -sean del tipo que sean- es la misma que ves aquí en el tutorial.

Sólo cambiará en tu caso el hecho de reproducir tu archivo. En los ejemplos que tienes aquí sobre visualizar una imagen .. para un archivo tipo "MP3" es exactamente lo mismo (la misma filosofía).

Sólo debes cambiar la cabecera HTTP que define el "content-type" (en ver.php) al formato MIME de un mp3 (que ahora no recuerdo .. pero usa "google" seguro que lo encuentras).

La llamada a tu "ver.php" será por un simple link standard.

Un saludo,
  #318 (permalink)  
Antiguo 12/03/2006, 13:53
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 21 años, 3 meses
Puntos: 1
Hola yo leí el tutorial de cluster y me funciona para el muestreo del thumbails, pero tengo una consulta,mis imagenes son muy grandes y quiero guardarlas con un tamaño mucho menor o con link al directorio donde las tengo almacenadas.

se puede generar un thumbails de imagenes antes de guardarlas a la base de datos?.

me gustaria saber como puedo validar el tamaño de las imagenes antes de guardarlas en la Base.

y otra consulta, tengo un script de noticias donde almaceno la informacion en archivo de texto plano, me gustaria saber como puedo hacer para almacenar imagenes en ese tipo de archivos, supuestamente es con link a la carpeta...no se..

necesito la ayuda de los maestros del web. gracias.
__________________
Cristian...
  #319 (permalink)  
Antiguo 13/03/2006, 06:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
se puede generar un thumbails de imagenes antes de guardarlas a la base de datos?.
Si, .. sólo tienes que tomar el script de este tutorial que genera el thumbnail y modificarlo para que no tome la imagen de un "string" sino de un archivo. En las FAQ's de este foro PHP tienes ejemplos concretos de esto.

Pero .. este no es el motivo de este tutorial, te recomiendo usar el buscador del foro para ver la otra alternativa: almacenar sólo la ruta de tus archivos y ahí ver donde aplicar tus procesos y demás en un tema nuevo que abras.

Cita:
y otra consulta, tengo un script de noticias donde almaceno la informacion en archivo de texto plano, me gustaria saber como puedo hacer para almacenar imagenes en ese tipo de archivos, supuestamente es con link a la carpeta...no se..
Debes ver claro la filosofía de lo que pretendes hacer .. Si en una "base de datos" como ya te he comentado guardas en un campo de la misma el "nombre" del archivo (con su ruta o sin ella) a donde apunta (está) ese archivo en cierto directorio de tu servidor. Si tu dices almacenar tu información en un archivo de texto plano .. al final este archivo de texto plano se comporta como una "base de datos" cualquiera .. de alguna forma identificas tus "registros" y tus "campos", bien .. para almacenar "archivos" se trata de hacer lo mismo: almacenar -sólo- la ruta y/o nombre de tu archivo .. así de simple.

Pero insisto .. No mezcles temas e inicia nuevos temas con estas preguntas concretas.

Un saludo,
  #320 (permalink)  
Antiguo 13/03/2006, 11:41
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 21 años, 3 meses
Puntos: 1
gracias cluster, voy a hacver lo que indicas.

sorry.-
__________________
Cristian...
  #321 (permalink)  
Antiguo 29/03/2006, 10:03
 
Fecha de Ingreso: marzo-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
De acuerdo no se muestran los thumbnails

hola que tal cluster mira quisiera saber como muestro mi thumbnails con este codigo, ya vi que en l codigo se crea la imagen desde a base de datos, pero mi pregunta es en el archivo "ver_thumbnails" donde pongo "echo" y que variable debo poner para que se muestre gracias y disculpa
  #322 (permalink)  
Antiguo 29/03/2006, 14:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por joanmorales24
hola que tal cluster mira quisiera saber como muestro mi thumbnails con este codigo, ya vi que en l codigo se crea la imagen desde a base de datos, pero mi pregunta es en el archivo "ver_thumbnails" donde pongo "echo" y que variable debo poner para que se muestre gracias y disculpa
No se pone "echo" ni se indica ninguna variable (directamente) .. Se usa tal cual ves en el ejemplo: listar_imagenes.php, pero si quieres usar los "thumbnails" .. en lugar de apuntar el link hacia "ver.php" .. usa "ver_thumbnails.php".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #323 (permalink)  
Antiguo 30/03/2006, 07:29
 
Fecha de Ingreso: marzo-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
igual no me funciona

gracias por la respuesta,
hice los que me dijiste cambie ver.php por ver_thumbnail.php, y muestra solo las propiedades de la foto pero no muestra el thumbnail, por que razon no se pero de alguna manera no la esta creando, tiene conexion a la base de datos pero no se muestra la foto.... por favor ayuda de verdad la necesito...

gracias...
  #324 (permalink)  
Antiguo 30/03/2006, 07:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
igual no me funciona

Listar_imagenes.php
<?php
mysql_connect("localhost","xxxx","xxxx") or die ("no se ha podido conectar a la BD");

mysql_select_db("amaneciendo") or die ("no se ha podido seleccionar la BD");

$sql = "SELECT id,archivo_nombre,archivo_tipo,archivo_peso FROM archivos";
$consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");

While ($registro=mysql_fetch_assoc($consulta)){
echo "<img src=\"ver_thumbnail.php?id=".$registro['id']."\">";
echo "<br> Nombre archivo: ".$registro['archivo_nombre'];
echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo'];
echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>";
}

?>

en otro archivo tal como lo dijiste

ver_thumbnail.php

<?php

// OJO, sólo funciona con imagnes en formato JPEG ...

if(isset($_GET['id'])) {

$conexion=mysql_connect("localhost","xxxx","xxxx") or die ("no se ha podido conectar a la BD");
mysql_select_db("amaneciendo") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$imagen = mysql_result($consulta,0,"archivo_binario");

// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG
Header ("Content-type: image/jpeg");

// Generar el thumbnail:

// Se crea la imagen desde el campo binario de la BD
$img = imagecreatefromstring($imagen);

// Tamaño del Thumbanil (de la imagen a generar ..)
$picsize = 123;

// Se obtienen los datos del ancho y alto de la imagen.
$new_w = imagesx($img);
$new_h = imagesy($img);

// Se calcula la relación alto/ancho
$aspect_ratio = $new_h / $new_w;

// Se ajusta al nuevo tamaño
$new_w = $picsize;
$new_h = abs($new_w * $aspect_ratio);

// Se crea la mascara de la imagen nueva
$dst_img = imagecreate($new_w,$new_h);

// Se copia y reajusta el nuevo tamaño en la nueva imagen.
imagecopyresized($dst_img,$img,0,0,0,0,$new_w,$new _h,imagesx($img),imagesy($img));

// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
// El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
imagejpeg($dst_img,'',100);


}

?>

Última edición por joanmorales24; 30/03/2006 a las 08:28
  #325 (permalink)  
Antiguo 30/03/2006, 09:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por joanmorales24
gracias por la respuesta,
hice los que me dijiste cambie ver.php por ver_thumbnail.php, y muestra solo las propiedades de la foto pero no muestra el thumbnail, por que razon no se pero de alguna manera no la esta creando, tiene conexion a la base de datos pero no se muestra la foto.... por favor ayuda de verdad la necesito...

gracias...
Pero .. vamos a ver.

Tu tienes instalado las librerías GD en tu servidor? .. (eso debes comprobarlo antes .. en este mensaje se ha hablado del tema).

Por otro lado .. para evaluar un problema con librerías GD o con "cabeceras" como usan estos scripts, debes aislar el tema, probar de forma individual el script que genera dichos thumbnails .. quitar por el momento las referencias a header() para ver posibles mensajes de error que de otra forma No veras .. y en función de esos "mensajes" de error .. podrás averigüar que problema concreto tienes: tal vez un problema a nivel de cierta función de GD o en general de las funciones GD (instalación de estas) .. En fin .. si no consigues ver el mensaje de error es dificil ver que pueda "suceder" .. por eso mis indicaciones van orientadas a "intentar" ver dicho mensaje de error, no a solventar el problema directamente pues . .com veras esto es un "tutorial" probado, tanto por mi parte como por otros usuarios que lo han seguido.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #326 (permalink)  
Antiguo 30/03/2006, 15:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
De acuerdo

ok verificare todo lo que pasa es que soy nuevo en esto y me ha costado bastante aprender por que mi tiempo no me lo permite.... gracias cluster...
averiguare que es una libreria GD....


saludos
  #327 (permalink)  
Antiguo 08/04/2006, 08:06
Avatar de ortiz  
Fecha de Ingreso: septiembre-2004
Mensajes: 154
Antigüedad: 19 años, 7 meses
Puntos: 0
sobre el tutorial

Antes que nada, tengo que decir que los 4 scripts estan muy bien explicados. Yo no soy programador y los entiendo más o menos bien.

Por otro lado, he seguido correctamente el tutorial hasta el momento fatídico, el momento ver_thumbnail.php. Extrae toda la información de la BD correctamente pero, me sale el recuadrito del enlace roto(parece que esto es bastante común). Siguiendo los consejos de búsqueda de errores de Cluster he acotado todos los posibles:

1) Tengo soporte completo de librerias GD:

GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.4
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

2) La sentencia encargada de recoger el valor del id de la fila de la tabla archivos, lo hace correctamente.

3) La conexión a mi bd es correcta, utilizo un include. [problema!]
4)
Código PHP:
$consulta mysql_query($sql,$cbd) or die(mysql_error()); 
Utilizo esta sentencia para conocer pobiles errores, por si acaso.

[problema!]
Después de todo esto, seguía sin poder ver correctamente los thumbnails supuestamente generados. En esas que me dió por clickar al menu que se genera sobre la imagen del link roto, y me llevó a una pantalla con errores, creados por el mysql_error.
El error concreto era algo extraño pero se deducía que había problemas con el include ("conecta.php"). Así que fui cerrando en cada script la conexión abierta con mysql_close($conexion).

Y entonces funcionó. Ya véis, la parida más grande del mundo. En fin, más vale tarde que nunca.
__________________
Juegos de Estrategia para PC - Warphammer.net :: Estrategia sólo en castellano
  #328 (permalink)  
Antiguo 28/05/2006, 17:32
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Hola Cluster

Cuando uso un .gif, en el fondo de la imagen (en los espacios vacios) se ve negro, se puede hacer algo con imagecolortransparent (), si es asi, como se le haria?

Última edición por August; 28/05/2006 a las 17:37
  #329 (permalink)  
Antiguo 28/05/2006, 18:10
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
creo que es alguna otra funcion, para que los espacios vacios del gif, no salgan negros

pero cual es y como se usaria??

Muchas gracias
  #330 (permalink)  
Antiguo 20/06/2006, 15:32
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Subir los archivos con la id de sesion

Como puedo hacer para enviar los archivos a la base de datos con la id del usuario?

Porque en el formulario pongo
Código HTML:
<input type="hidden" NAME="id" VALUE="<?=$_SESSION['id']?>" /> 
y cuando veo la base de datos me lo pone con otra id..

Como puedo solucionarlo?
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.
Tema Cerrado

SíEste tema le ha gustado a 44 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:43.