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 Cluster felicidades esta pura vida ese script. Lei que alguien dijo que el haberte escogido como moderador del foro fue una exelente decision yo ...

  #91 (permalink)  
Antiguo 04/06/2004, 09:53
Avatar de ancubero  
Fecha de Ingreso: octubre-2003
Ubicación: San Jose Costa Rica
Mensajes: 54
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola Cluster felicidades esta pura vida ese script.

Lei que alguien dijo que el haberte escogido como moderador del foro fue una exelente decision yo apollo lo dicho pues lo he podido comprobar cada ves que tengo alguna pregunta las soluciones que me has dado siempre funciona perfecto sos GRANDE amigo muchas felicidades
Gracias
Ancubero

Última edición por ancubero; 04/06/2004 a las 10:10
  #92 (permalink)  
Antiguo 04/06/2004, 10:46
Avatar de ancubero  
Fecha de Ingreso: octubre-2003
Ubicación: San Jose Costa Rica
Mensajes: 54
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola a todos

Aqui esta el codigo para descargar pdf desde la db

Código PHP:
<?php
header
("Content-Type: application/pdf");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

if(isset(
$_GET['id'])) { 
    
// you may have to modify login information for your database server: 
    
$conexion=mysql_connect("localhost","","") or die ("no se ha podido conectar a la BD"); 
    
mysql_select_db("db") or die ("no se ha podido seleccionar la BD"); 
    
$sql "SELECT archivo_binario,archivo_tipo,archivo_peso FROM archivos WHERE id='".$_GET['id']."'"
    
$consulta mysql_query($sql,$conexion); 
    
$datos mysql_result($consulta,0,"archivo_binario"); 
    
$tipo mysql_result($consulta,0,"archivo_tipo"); 
    echo 
$datos

?>
Pura Vida Gente
  #93 (permalink)  
Antiguo 04/06/2004, 12:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Gracias ancubero ...

Sobre el ejemplo que dejastes sobre descargar PDF's .. en $tipo se guarda el formato MIME original del archivo que subistes (sea un PDF, un .exe o una imagen por poner ejemplos ..)

Si lo usas en tu cabecera HTTP que ya usas (pero "fija") podrías usar ese mismo script para descargar no sólo PDF's sino cualquier archivo (bueno .. mas bien sin más cabeceras HTTP sólo verias incrustrados en tu navegador los que asocie a su respectivo "visor" y los que no reconozca .. los enviará a "descargar").
Sería cosa de (según tu ejemplo) mover los "header" que ahí aparecen bajo la definición de $tipo y entre el echo $datos ..

Código PHP:
header("Content-Type: $tipo"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
echo 
$datos
Puedes añadir más cabeceras HTTP para que .. por ejemplo el nombre del archivo (de ese .pdf o lo que sea) te dé el nombre del script (nose.php). Todo eso es parte del protocolo HTTP que lo define sus RFC's correspondientes. (en el foro se suele hablar del tema y en www.php.net/header tienes ejemplos creo recordar).

Un saludo,
  #94 (permalink)  
Antiguo 04/06/2004, 13:21
Avatar de ancubero  
Fecha de Ingreso: octubre-2003
Ubicación: San Jose Costa Rica
Mensajes: 54
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola

Hey si cluster tenes razon, no se me ocurrio por que la verdad estava muy contento que me habia funcionado, ademas la correccion que le hiciste esta perfecta, no importa el archivo que sea el browser siempre va a saber que aplicacion referrirlo.

Pura Vida Gente.
Ancubero
  #95 (permalink)  
Antiguo 15/06/2004, 12:56
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 11 meses
Puntos: 2
Bueno, he visto que el sript funciona al derecho y al revés, ahora tengo algo curioso por hacer con eso mismo....

Esto como sería si se subiesen no solo 1, sino 2, 3, 4, y hasta más imágenes....?
Quiero decir, dentro de la misma id, sin necesidad de crear otra id....?
__________________
Ahora T4X es
WinGFX!!!!!

Última edición por T4X; 15/06/2004 a las 13:00
  #96 (permalink)  
Antiguo 16/06/2004, 04:47
 
Fecha de Ingreso: junio-2004
Mensajes: 5
Antigüedad: 20 años, 6 meses
Puntos: 0
Problemas al ver las imagenes

El Tutorial esta muy bien y quisiera felicitar a Cluster por el trabajo y el tiempo q emplea en ayudar.

Tengo un problema con las imagenes y pido ayuda por si alguien me puede ayudar. Al intentar verlas solo aparece la tipica cruz roja donde deberia estar la imagen. Sin embargo si aparecen el resto de los datos correspondientes a esa imagen como nombre, tipo y peso del archivo. AL mirar en MySql veo que muestran las imagenes guardadas en la correspondiente base de datos.

Cogi los scripts propuesto y cambie lo minimo para que funcionaran en mi maquina,(nombre de la base de datos, usuario). He comprobado la lista de comentarios donde usuarios (sicuesn, pavement...) han tenido similares problemas y aun no logro resolverlo.

Podria alguien ayudarme, por favor!
  #97 (permalink)  
Antiguo 16/06/2004, 08:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por T4X
Bueno, he visto que el sript funciona al derecho y al revés, ahora tengo algo curioso por hacer con eso mismo....

Esto como sería si se subiesen no solo 1, sino 2, 3, 4, y hasta más imágenes....?
Quiero decir, dentro de la misma id, sin necesidad de crear otra id....?
Necesitas para ese caso ampliar el modelo de datos de tu BD.

Es decir .. El tutorial sólo gestiona la tabla de los "Archivos" con su ID único para cada una.

Si tu tienes otro registro que puede contener N archivos, tendras que crearte una tabla extra en relación N <-> N para guardarte:

matriz_archivos
id_matriz
id_archivo
id_tuyo_de_otra_tabla

Así podras tener 1 (o N) archivos para 1 (o N) registros de otra tabla que gestione por ejemplo "noticias", "artículos" .. etc ..

Un saludo,
  #98 (permalink)  
Antiguo 17/06/2004, 18:10
 
Fecha de Ingreso: junio-2004
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
No muestra la imagen

Hola cluster soy novatillo en php pero entiendo el código que escribes, aún así lo he copiado tal cual y me da algunos fallos:
1º - no se redirecciona a listar_imagenes.php tras subir el archivo, que aparentemente lo hace bien, pues voy al panel de control de la bd (la tengo en lycos) y veo que se han introducido los datos, apareciendo archivo_binario asi GIF89a@/ÄÿÿÿZ....
2º - al ir manualmente a insertar_imagenes.php me muestra los datos de una sola imagen pero no muestra la foto.
3º - al ir manualmente a ver.php no hace nada.
Y esto me pasa con jpg y gif.
Por favor qué puedo hacer? puede ser que lycos no soporte bien estos métodos?

Muchas gracias
  #99 (permalink)  
Antiguo 18/06/2004, 07:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
lycos mete su própia publicidad como un frame si mal no recuerdo .. eso es código HTML que se envia antes al navegador y eso puede ocasionar problemas con las funciones como header() que usa el script para hacer várias cosas como:

1) Redireccionar
2) componer las cabeceras HTTP para indicar que el dato que se va a enviar es una imagen/archivo con su formato MIME adecuado.

Si no ves ningún mensaje de error es por qué -tal vez- el nivel de mensajes de error que está mostrando Lycos está "silenciado" .. Puedes ver los mensajes de error que se estén probocando vía:

error_reporting(E_ALL);

Usandolo al principio de todos los scripts que intervienen en el tutorial .. ahí seguro que empezarás a ver problemas tipo "output (salida) enviada en tal línea de código" .. que .. vendría a corresponder con el de la publidad (HTML) que incrustra el servidor antes de lo que tus scripts PHP puedan hacer.

Solución para Lycos: cambiar de servicio de hosting. SIN publicidad.

Lo mismo podría ser aplicable para phpmac (no mencionas las condiciones de pruebas .. pero puedes usar error_reporting como se indica para ver posibles mensajes de error sobre cabeceras HTTP en ver.php y ejecutandolo directamente).


Un saludo,
  #100 (permalink)  
Antiguo 18/06/2004, 08:33
 
Fecha de Ingreso: junio-2004
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
error con la imagen

Cluster se me olvidó comentarte que tengo el hosting y dominio en lycos pero contratado, no hay publicidad.
Gracias.
  #101 (permalink)  
Antiguo 18/06/2004, 14:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Ok, .. sotoware, igualmente prueba el "error_reporting()" y ejecutar ver.php con algún ID de tu imagen para ver si arroja algún tipo de error previo.

Un saludo,
  #102 (permalink)  
Antiguo 20/06/2004, 09:37
 
Fecha de Ingreso: junio-2004
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola Cluster:
inserté la instrucción en el código:

$consulta_insertar = "INSERT INTO archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
error_reporting(E_ALL);
header("location: listar_imagenes.php"); // si ha ido todo bien

Hasta aqui supuestamente va bien xq se almacenan los datos en la bd pero daeste error:
Warning: Cannot modify header information - headers already sent by (output started at /data/members/paid/g/l/globaltelecom-sur.com/htdocs/www/prueba3/insertar.php:10) in /data/members/paid/g/l/globaltelecom-sur.com/htdocs/www/prueba3/insertar.php on line 42

no se que significa exactamente, y al ir a examinar_imagenes se muestran los datos de las imagenes pero no las imagenes en si sino el tipico cuadrado con la x.
¿que puedo hacer?¿cual puede ser la orden para mostrar una foto sin usar ver.php?
echo "<img src=\"ver.php?id=".$registro['id']."\">"; para sustituir esto por una orden que muestre la foto cuyo id es 2 por ejemplo.

gracias cluster
  #103 (permalink)  
Antiguo 20/06/2004, 14:52
 
Fecha de Ingreso: junio-2004
Mensajes: 8
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola de nuevo cluster, he comprobado que no me funcionan las ordenes de header.
no se me redireccionan las páginas, en insertar.php ignora dicha sentencia cuando no he insertado ningún archivo desde formulario.php y le doy a subir archivo y se queda en blanco la pantalla pero dentro de insertar.php. Y aunque suba la imagen sí se archiva en la bd pero no se redirecciona a listar_imagenes.php.
Pero vamos, mi problema prioritario que era mostrar la imagen de la bd, creo que puede venir de eso mismo, que en ver.php tampoco funcione el header.
¿Porqué puede suceder esto cluster?
Muchas gracias por todo
  #104 (permalink)  
Antiguo 21/06/2004, 01:20
 
Fecha de Ingreso: febrero-2004
Ubicación: horcon
Mensajes: 133
Antigüedad: 20 años, 10 meses
Puntos: 1
gracias cluster por este tutorial esta buenisimo maestro saludos y sigue adelante
__________________
pato
  #105 (permalink)  
Antiguo 21/06/2004, 03:52
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 20 años, 6 meses
Puntos: 0
problemas con las GD

Hola, muy bueno el tutorial cluster!

Me han surgido unos problemas al llevar a la practica estos scripts. En concreto los tengo con las librerias GD q no me acaban de funcionar para todas las imagenes. Os cuento.
Tengo una tabla con algunos daatos y los campos BLOB para las imagenes, las inserto sin problemas, y las recupero perfectamente si no hago ningun tratamiento con las GD. El problema viene al tratar de hacer fotos pekeñas a partir de los BLOB q tengo en la base de datos. al usar las funciones imagecreate* no me acaba de procesar todas las imagenes q subo. La mayoria las trata sin problemas, pero tengo 4 o 5 imagenes q no es capaz de tratarlas.

A alguien le ha pasado un caso similar?

estoy perdido, no se me ocurre nada.
Gracias por adelantado.
  #106 (permalink)  
Antiguo 21/06/2004, 05:06
 
Fecha de Ingreso: junio-2004
Mensajes: 5
Antigüedad: 20 años, 6 meses
Puntos: 0
Muchas Gracias Custer por la ayuda
Probe el tema en otra maquina que tengo y me funciono directamente, puede que sea un problema de configuracion?

En la maquina que no funcionaba habia instalado MySQL, Apache y PHP con uno de esos instaladores que lo hacen todo a la vez.
En la maquina que si funcionaba habia instado cada cosa independientemente.
En principio eso era la unica diferencia entre las dos maquinas, no se si realmente importara.

Ahora mismo estoy intentando reinstalar todo en la maquina que me interesa mas. Si tengo el mismo problema usare lo que comentas del error_reporting

Por otra parte, estoy intentando ver estas cosas solo en el localhost, si es eso a lo que te referias cuando nombrabas las condiciones de prueba.

Gracias.

  #107 (permalink)  
Antiguo 22/06/2004, 08:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por GTTo
Hola, muy bueno el tutorial cluster!

Me han surgido unos problemas al llevar a la practica estos scripts. En concreto los tengo con las librerias GD q no me acaban de funcionar para todas las imagenes. Os cuento.
Tengo una tabla con algunos daatos y los campos BLOB para las imagenes, las inserto sin problemas, y las recupero perfectamente si no hago ningun tratamiento con las GD. El problema viene al tratar de hacer fotos pekeñas a partir de los BLOB q tengo en la base de datos. al usar las funciones imagecreate* no me acaba de procesar todas las imagenes q subo. La mayoria las trata sin problemas, pero tengo 4 o 5 imagenes q no es capaz de tratarlas.

A alguien le ha pasado un caso similar?

estoy perdido, no se me ocurre nada.
Gracias por adelantado.
Que tipo de imagenes son las que falla (GIF? tal vez) y .. que problema observas cuando "falla" .

Te lo comento por qué .. el formato GIF no se puede más que leer con GD (no crear). También . .tal vez si procesas imagenes demasiado grandes podría probocar algun error de "time out" de PHP lo cual podrías solventarlo con set_time_limit() en el script de proceso de los thumbnails para dar más tiempo de proceso a ese script en concreto. Lo mismo, referente a "recursos del servidor" .. podría también (según el tamaño/peso) de la imagen dar problemas con el consumo de memoria y que PHP le dá a cada script por defecto (ver phpinfo() para más detalles en memory_limit si mal no recuerdo ..o similar).

Un saludo,
  #108 (permalink)  
Antiguo 22/06/2004, 19:17
 
Fecha de Ingreso: junio-2004
Mensajes: 2
Antigüedad: 20 años, 5 meses
Puntos: 0
Problemas mi BD al mostrar imagenes

Mi problema es que al momento de trabaja con bases de datos no logro ver mas que una sola imagen, yo ya llevo dias rompiendome la cabeza y recopilando informacion y no lo logro, unicamente logro obtener una sola imagen de la base de datos, pero yo quiero que se muestren solamente tres con sus respectivos datos.

de manera contraria insertar las imagenes en una carpeta y de ahi mostrarlas con su id o nombre pero tampoco lo logro.

mis resultados son los siguientes y espero que a alguien les sirva:


echo '<td bgcolor="white" valign="middle" align="center" width="200" height="110"><font face="arial" color="#000000" style="font-size: 10pt">'.$row["texto_mostrar"].'<br><a href="ver.php?id='.$row["id"].'">imagen1</a><a href="ver2.php?id2='.$row["id"].'">imagen2</a><a href="ver3.php?id3='.$row["id"].'">imagen3</a></font></td>';

esta parte del script indica que al darle un clien en cualquiera de los links muestre imagen por imagen y realmente lo hace, pero lo que pretendo es que con un solo link muestre las tres en una tabla con sus respectivos textos e imagenes.

<?
$id = $_GET['id'];
//configurar solamente la linea de abajo
@mysql_connect("mi_dominio", "mi_user", "mi_password");
@mysql_select_db("infoclas_com");
$query = "SELECT imgen1 FROM anuncio where id='$id'";
$result = @mysql_query($query);
$imgen1 = @mysql_result($result, 0);
Header( "Content-type: image/jpeg");
echo $imgen1;
?>

creen que es posible...??????



Prueben este script es muy sencillo y facil de entender, si alguien desea que se lo muestre paso por paso haganmelo saber.

Saludos:
  #109 (permalink)  
Antiguo 23/06/2004, 02:35
 
Fecha de Ingreso: junio-2004
Mensajes: 5
Antigüedad: 20 años, 6 meses
Puntos: 0
De acuerdo Problemas con las imagenes

En un mensaje anterior mencionaba que no podia ver las imagenes. Haba instalado Apache+PHP+MySQL usando un fichero llamado
appserv-win32-2.3.0.exe
que instala y configura los mismos simultaenamente.

Sobre la misma maquina tras desinstalar lo anterior, volvi a instalar cada cosa (PHP, Apache y MySQL) por su parte.

Ahora funciona perfectamente, puedo ver las imagenes. No soy muy ilustrado en estos temas, asi que no puedo decir mas del problema, quiza algun tema de mala configuracion.

De todas formas queria decirlo por si a alguien le ocurre lo mismo.

Asimismo dar las gracias a Cluster por la ayuda y por el excelente tutorial.
  #110 (permalink)  
Antiguo 23/06/2004, 06:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
willi's ...
El ejemplo: listar_imagenes.php hace eso mismo .. lista N imagenes (dependiendo de tu consulta SQL que hagas) sin problemas .. pues la técnica que ahí ves es la de llamar a tus imagenes vía:

<img src="ver_imagen.php?id=<? echo $row['id'] ?>">

Pero ese "row['id']" lo obtienes de tu consulta SQL típica y su bucle while($row=mysql_fetch_array($sql)) típico como lo haces para mostrar otros registros de esa misma tabla(s).


Un saludo,

Última edición por Cluster; 23/06/2004 a las 06:44
  #111 (permalink)  
Antiguo 23/06/2004, 20:49
Avatar de ramm  
Fecha de Ingreso: junio-2004
Ubicación: Guadalajara
Mensajes: 207
Antigüedad: 20 años, 6 meses
Puntos: 0
Parse error

Hola a todos.
tengo tiempo tratando de hacer esto y no he conseguido aun la forma, este tutorial parece estar todo bien pero estoy teniendo problemas al usarlo (seguramente algo mal estoy haciendo)
este es el codigo que use:
<?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.
if (empty($_FILES['foto']['name'])){
header("location: editorial1.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}

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

// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['foto']['tmp_name'] ;

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['foto']['name'];
$binario_peso=$_FILES['foto']['size'];
$binario_tipo=$_FILES['foto']['type'];

//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO e_publica (ID, titular, editorial, fecha, foto, nombre, size, type) VALUES ('', '$titular', '$editorial', '$fecha', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: editorial3.php"); // si ha ido todo bien
exit;
?>

y me esta dando este error:
Parse error: parse error in /home/sabana/public_html/nuevo/admin/editorial2.php on line 10

Para ese codigo, la linea 10 dice:
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");

no entiendo porque me da ese error ahi
me puede ayudar alguien con esto?
Gracias.
  #112 (permalink)  
Antiguo 24/06/2004, 05:05
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 20 años, 6 meses
Puntos: 0
Cita:
Iniciado por Cluster
Que tipo de imagenes son las que falla (GIF? tal vez) y .. que problema observas cuando "falla" .

Te lo comento por qué .. el formato GIF no se puede más que leer con GD (no crear). También . .tal vez si procesas imagenes demasiado grandes podría probocar algun error de "time out" de PHP lo cual podrías solventarlo con set_time_limit() en el script de proceso de los thumbnails para dar más tiempo de proceso a ese script en concreto. Lo mismo, referente a "recursos del servidor" .. podría también (según el tamaño/peso) de la imagen dar problemas con el consumo de memoria y que PHP le dá a cada script por defecto (ver phpinfo() para más detalles en memory_limit si mal no recuerdo ..o similar).

Un saludo,
Gracias por contestar. Solo uso imagenes jpeg, y de tamaños bastante reducidos, creo q ninguna supera los 100k por lo tanto descarto problemas de recursos o de timeout. Investigando sobre esto, creo q he acorralado un poco el problema. Pudiera deberse a la version del mysql? en el servidor q me falla tienen la version 3.xx y en otro servidor q me funciona bien tienen la 4.xx

Estoy en comunicacion con los tecnicos del servidor y nadie sabe cual es el problema :(

saludos!
  #113 (permalink)  
Antiguo 24/06/2004, 08:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Dices que son de "100 Kbytes"? .. lo menciono por qué si lees el tutorial .. al final del mismo hago una reseña sober el tipo de dato "BLOD" y sus limitaciones encuanto a Bytes (son 64 Kbytes) Tendrías que usar otro tipo de dato para ese campo (lo explico también ahí mismo).

Un saludo,
  #114 (permalink)  
Antiguo 24/06/2004, 08:52
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 20 años, 6 meses
Puntos: 0
Cita:
Iniciado por Cluster
Dices que son de "100 Kbytes"? .. lo menciono por qué si lees el tutorial .. al final del mismo hago una reseña sober el tipo de dato "BLOD" y sus limitaciones encuanto a Bytes (son 64 Kbytes) Tendrías que usar otro tipo de dato para ese campo (lo explico también ahí mismo).

Un saludo,
Ese no es el problema, estoy usando MEDIUMBLOB q alcanza hasta 16MB.

Hoy he hablado con el administrador del servidor donde estoy teniendo los problemas y el tb esta desconcertado. Si uso las librerias GD sobre ficheros directamente no da problemas y funciona para todas las imagenes, en cambio si lo hago desde los registros de la BBDD es cuando se nos va todo al cuerno y funciona solo para ciertas imagenes.

Gracias por contestar cluster.
saludos!
  #115 (permalink)  
Antiguo 24/06/2004, 09:14
Avatar de ramm  
Fecha de Ingreso: junio-2004
Ubicación: Guadalajara
Mensajes: 207
Antigüedad: 20 años, 6 meses
Puntos: 0
Sera que no se le pueden cambiar los nombres a los campos?
Este form

Código HTML:
<form action="editorial2.php" method="post" enctype="multipart/form-data" name="e_publica" id="e_publica">
<textarea name="titular" cols="40" rows="2" id="titular"></textarea></td>
<textarea name="editorial" cols="40" rows="6"></textarea>
<input name="fecha" type="text" id="fecha" size="20">
<input name="foto" type="file" id="foto" size="20">
<input type="submit" name="Submit" value="Enviar"> 
me funciona si le quito el campo de archivo, con un codigo similar a este:

Código PHP:
//insertamos los datos en la BD. 
$consulta_insertar "INSERT INTO e_publica (ID, titular, editorial, fecha, foto, nombre, size, type) VALUES ('', '$titular', '$editorial', '$fecha', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: editorial3.php");  // si ha ido todo bien 
exit; 
?> 
o sea, le cambie los nombres a los campos de la BD, y al codigo, no entiendo porque no me funciona y me sigue dando este error:
Cita:
Parse error: parse error in /home/sabana/public_html/nuevo/admin/editorial2.php on line 10
Gracias a qienes me puedan ayudar.
  #116 (permalink)  
Antiguo 24/06/2004, 09:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
mm bueno, .. la mayoría de veces un "parse error" no está exactamente en la línea que PHP indica sino en alguna anterior (puede ser inmediatametne la anterior como puede ser arrastrado desde más arriba de tu código ..)

Con ese código fuera de contexto no se puede ver por donde puede andar ese ; que te has dejado ... o esas comillas sin cerrar .. o similar.

Un saludo,
  #117 (permalink)  
Antiguo 24/06/2004, 12:42
Avatar de ramm  
Fecha de Ingreso: junio-2004
Ubicación: Guadalajara
Mensajes: 207
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola
Primero q todo, disculpen por el codigo fuera de contexto, (no sabia como ponerlo formateado)
Cita:
Iniciado por Cluster
Con ese código fuera de contexto no se puede ver por donde puede andar ese ; que te has dejado ... o esas comillas sin cerrar .. o similar.,
Por favor puedes decirme cuales son las comillas sin cerrar? de verdad no las veo, ahi va el codigo:

Código 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. 
if (empty($_FILES['foto']['name'])){ 
header("location: editorial1.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. 
exit; 


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

// archivo temporal (ruta y nombre). 
$binario_nombre_temporal=$_FILES['foto']['tmp_name'] ; 

// leer del archvio temporal .. el binario subido. 
// "rb" para Windows .. Linux parece q con "r" sobra ... 
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal))); 

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tamaño y tipo. 
$binario_nombre=$_FILES['foto']['name']; 
$binario_peso=$_FILES['foto']['size']; 
$binario_tipo=$_FILES['foto']['type']; 

//insertamos los datos en la BD. 
$consulta_insertar "INSERT INTO e_publica (ID, titular, editorial, fecha, foto, nombre, size, type) VALUES ('', '$titular', '$editorial', '$fecha', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: editorial3.php");  // si ha ido todo bien 
exit; 
?>
Me fijé que estaba errado en la posicion del error que me da PHP, la linea 10 segun lo tengo en Dreamweaver es:
Código PHP:
$conexion mysql_connect("localhost","tal","tal",) or die("No se pudo realizar la conexion con el servidor."); 
antes de eso solo esta la parte que verifica si hay algun archivo, no creo que el error este ahi.

Hice la prueba de quitar esa parte del codigo y colocar un "require(../conections/...)" al principio pero me dio el mismo error.

Gracias.
"Las personas que se dedican a ayudar a otros sin esperar nada a cambio, tarde o temprano se dan cuenta de que consiguen lo que necesitan para ellos de forma más facil."
  #118 (permalink)  
Antiguo 24/06/2004, 15:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
A simple vista:

$conexion = mysql_connect("localhost","tal","tal",) or die("No se pudo realizar la conexion con el servidor.");

Te sobra esa , que hay despues del segundo "tal" ..

Código PHP:
$conexion mysql_connect("localhost","tal","tal") or die("No se pudo realizar la conexion con el servidor."); 
Un saludo,
  #119 (permalink)  
Antiguo 24/06/2004, 17:26
Avatar de ramm  
Fecha de Ingreso: junio-2004
Ubicación: Guadalajara
Mensajes: 207
Antigüedad: 20 años, 6 meses
Puntos: 0
Jeje,
se dan cuenta como se le llena la cabeza a uno de basura.
eso era todo.
Muchisimas gracias Cluster,
Ahora solo tengo un problema, me sale la "x" en vez de mostrar la imagen, pero creo q se por que es.
si no lo logro resolver, vuelvo aqui.
rgracias.
  #120 (permalink)  
Antiguo 24/06/2004, 19:50
Avatar de ramm  
Fecha de Ingreso: junio-2004
Ubicación: Guadalajara
Mensajes: 207
Antigüedad: 20 años, 6 meses
Puntos: 0
Peldon

Hola de nuevo.
Disculpen mi ignorancia, pero hay algo que no entendi del codigo para generar los thumbnails.
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. 
    
imagejpeg($dst_img,'',100); 
tengo una pagina de noticias donde debe aparecer solo la ultima noticia que he guardado en la BD, esto lo hice cambiando la parte del codigo donde se hace la consulta:
Código PHP:
select.........where ID=$_GET['ID'
por:
Código PHP:
select........ORDER BY ID DESC 
pero necesitaría poner un thumbnail de la imagen al lado del titular de la noticia, para que al entrar en la pagina con la noticia completa se vea toda, con su imagen en tamaño normal.
mi pregunta es, si tengo una tabla con varios titulares, ademas de otra informacion, como hago que se vea el thumbnail en una de las celdas de la tabla?
espero que alguien me pueda ayudar
Gracias.
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:22.