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. Maestroooooo!!!!! muchisimas gracias!! es justo lo que necesitaba!!! te la has mandado!! muy completo y muy claro todo Un saludo....

  #61 (permalink)  
Antiguo 26/11/2003, 14:44
 
Fecha de Ingreso: noviembre-2003
Mensajes: 28
Antigüedad: 20 años, 5 meses
Puntos: 0
Genial!!!

Maestroooooo!!!!!

muchisimas gracias!! es justo lo que necesitaba!!!

te la has mandado!! muy completo y muy claro todo

Un saludo.
  #62 (permalink)  
Antiguo 22/02/2004, 13:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona
Mensajes: 31
Antigüedad: 20 años, 5 meses
Puntos: 0
No me muestra la imagen

Hola,

He adaptado este script para subir archivos a la bd. Todo me funciona correctamente, me sube la imagen al servidor. Pero lo que no me funciona es que al listar la imagen no me la muestra, en cambio las demás características si las muestra.
Exactamente no me funciona esto:

Código PHP:
echo "<img src=\"ver.php?id=".$registro['id']."\"> 
Me sale la X tipica com que no encuentra la imagen. He probado de poner la ruta de la imagen directamente y tampoco funciona. Las imagenes las tengo todas en una carpeta /localhost/imagenes/

Trabajo en php 4.3.4 y tengo la libreria GD Version bundled (2.0.15 compatible).

He creado la tabla exactamente como pone en el ejemplo.

Tengo algo mal??
Muchas gracias
  #63 (permalink)  
Antiguo 22/02/2004, 20:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pavement ...

Por lo que veo has modificado bastante el script original .. tanto como que has cambiado la filosofía del mismo que era la de enseñar a guardar datos de forma binaria en la BD (Msyql) ..

Sería mejor que abrieses un nuevo tema en el foro ... pongas el código que ahora estás usando (todos) y expliques el problema.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #64 (permalink)  
Antiguo 23/02/2004, 02:14
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona
Mensajes: 31
Antigüedad: 20 años, 5 meses
Puntos: 0
Imagenes

Hola Cluster,

No he adaptado nada del código, lo único es que al no salirme lo de mostrar las fotos de la base de datos mysql pues he intentado ir probando cosas, pero en principio tu código básico me sirve perfectamente, lo que no me muestra los datos!

Gracias
  #65 (permalink)  
Antiguo 23/02/2004, 14:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero ... Pavement .. si leistes bien de que trata el script .. se trata de guardar tus archivos (de cualquier tipo) -completos- en la Base de datos en un campo binario .. así que prubeas como "ruta donde está el archivo" no vas a conseguir nada .. En la BD se guarda el archivo completo en binario .. no rutas.

Comprueba que el campo que guarda el archivo en tu BD tiene algún valor (si lo editas verás un montón de códigos alfanuméricos sin sentido aparente .. eso es el "binario" (por decirlo de alguna forma) del archivo ..).

También revisa el resto de campos .. sobre todo el que guarda el formato MIME de la imagen (tipo) para ver si reconocío bien el formato de la imagen .. por qué con ese dato se forma la cabecera para que el navegador entienda que los datos que se le van a enviar es del tipo que ahí se indica ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #66 (permalink)  
Antiguo 03/03/2004, 23:49
Avatar de scuervo  
Fecha de Ingreso: febrero-2002
Ubicación: Cafetal
Mensajes: 10
Antigüedad: 22 años, 2 meses
Puntos: 0
Saludos, los felicito por tanta información pero tengo un gran problema, tengo un site bastante dinámico y las imagenes están en una BD. ( y allí quiero que se queden). No hay problema... El problema está que cuando quiero mostrar la imágen en la página, obligatoriamente debo mostrar en todo el html solo la imágen, porque si le llego a meter texto ya no presenta la imágen..... En resumen. Como puedo mostrar una imágen desde una BD y texto html en el mismo documento?

Saludos
y muchas gracias de antemano
Sergio Cuervo
  #67 (permalink)  
Antiguo 04/03/2004, 00:25
Avatar de scuervo  
Fecha de Ingreso: febrero-2002
Ubicación: Cafetal
Mensajes: 10
Antigüedad: 22 años, 2 meses
Puntos: 0
Hola, bueno me digo "HAY QUE LEER BIEN ANTES DE PREGUNTAR", lei hacia atras sus comentarios y cuando por fin me fume un cigarrillo, me relaje, vi la respuesta escrita... como combinar texto e imagen de una BD.
en la página que tiene el texto:
echo "<img src='fotos/show_foto_categoria.php?cod_categoria=7' border='0'>";
y la pagina de show fotos está el código con el header de mostrar solo la imágen. Uds. son grandes de verdad
Un Abrazo
Sergio Cuervo
  #68 (permalink)  
Antiguo 14/03/2004, 11:12
 
Fecha de Ingreso: marzo-2004
Mensajes: 7
Antigüedad: 20 años, 1 mes
Puntos: 0
a mi me funciona bien cuando introduce los datos en la base de datos, pero no se porque, al momento de mostrarlas(listar_imagenes.php), solo me muestra la informacion sobre la imagen, y en el lugar donde debe ir la imagen solo me muestra un cuadrado con una cruz.

y en ver.php solo me muestra el cuadrado con la cruz, sin informacion sobre la imagen.

Revisando la base de datos veo que en el campo "archivo_binario" todos los registros tienen valor "[BLOB - 0 Bytes]", pero si me reconoce el tipo de archivo y el tamaño bien...

Me pueden ayudar???

Última edición por rik4rdo; 14/03/2004 a las 14:04
  #69 (permalink)  
Antiguo 16/03/2004, 19:11
 
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 3 meses
Puntos: 0
Problema a la hora de mostrar la imagen

Hola a todos alguie me puede decir que es lo que esta pasando cuando trato de mostrar la imagen me muestra este mensaje:


/tmp/phpbrWXtx


Alguien tiene idea de que se puede tratar, es el server??? o que???


Saludos a todos y espero me puedan dar una respuesta..

JC
  #70 (permalink)  
Antiguo 17/03/2004, 08:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero donde te sale eso .. al ejecutar que script? .. que tipo de archivo se supone que es (una imagen en que formato?). Sólo sale eso o más cosas?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #71 (permalink)  
Antiguo 19/03/2004, 00:23
 
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 3 meses
Puntos: 0
Gracias Cluster por contestar...

sale cuando ejecuto el srcipt y lo que quiero mostrar es una imagen gif o jpg. y si es lo unico que sale....


que crees que pueda ser??? puede ser el server??? como lo prodria resolver???

Saludos JC
  #72 (permalink)  
Antiguo 19/03/2004, 07:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El ejemplo original usa las cabeceras fijas para archivos JPG no GIF (por lo menos el que genera los thumbnails). El ver.php si que toma en cuenta el formato MIME de la imagen y en consecuencia genera la cabecera HTTP adecuada ...

Revisa en tu BD si el campo 'archivo_tipo' de tu imagen (registro) tiene el valor esperado .. algo tipo: image/jpeg para los JPG .. image/gif para los gif .. etc.

Si ese valor no existe o no es correcto (= al formato de la imagen) la cabecera HTTP se estará enviando mal al navegador .. así que no sé ahí que interpretará o estará intentando interpretar el navegador ..


Un saludo,

PD: A todo esto .. ¿has hecho cambios (sobre le código) de los ejemplos originales .. o estás probando los ejemplos tal cual se publican aquí?
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #73 (permalink)  
Antiguo 29/03/2004, 05:32
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Mis Felicitaciones para tan buen tutorial ... y por supuesto para Cluster .
Llevo suscrito al tema porque pensaba usarlo tarde o temprano, y ya empecé a hacer pruebas y va muy bien.

Lo que quiero saber es si se puede saber el id en la misma inserción (con certeza)...

¡A ver si me explico mejor!
Al insertar la imágen, el id es un campo que se autoincrementa, y por eso se inserta con la cadena vacía (¿creo que voy bien... ?)
Hice un cambio en las propiedades del campo para que no se autoincremente y antes de subir la imagen leo el valor máximo del campo id, y le sumo uno:

$consulta_id = "select max(id) as id from archivos";
$consulta = mysql_query($consulta_id, $conexion) or die("No se pudo leer los datos de la base de datos.");
$_id = mysql_fetch_array($consulta);
$nuevo_id = $_id["id"] + 1;

Seguramente se pueda conseguir mejor, pero no estoy muy diestro en estos temas...

Luego, al hacer la inserción, el campo id le asigno $nuevo_id.
La pregunta entonces sería:
¿Es correcto como lo hago?... ¿Se puede hacer mejor...?
  #74 (permalink)  
Antiguo 29/03/2004, 06:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hola caricatos,

Puedes usar la función mysql_insert_id() o su equivalente en SQL para obtener el último id generado por un campo autonumérico e incremental.

Pero, recuerda que ese ID ya es autoincremental de por sí .. así que si necesitas hacer esa operación para sumar+1 sobre la misma tabla de archivos (tabla SQL) no es necesario que lo hagas pues ya ese proceso es automático.

El campo "ID" se debe incrementar .. no deberías dejarlo como tipo "libre" ( y si lo haces como lo estás haciendo por lo menos que sea con propiedad de "Único" el campo "ID" para evitar repetidos ) .. Se supone que ese ID ha de ser único (a nivel de tabla y para usarlo como clave foránea ..) otra cosa es que tu necesites o tengas un campo extra que le asignes algún tipo de código a tus imagenes sea secuencial o no ..

¿Por qué dices:?
Cita:
"Al insertar la imágen, el id es un campo que se autoincrementa, y por eso se inserta con la cadena vacía (¿creo que voy bien... ?)"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #75 (permalink)  
Antiguo 30/03/2004, 17:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Cluster: Lo que citas se simplifica con este código:

insert id into archivos values ""

O sea que no se inserta nada, pero se autoincrementa... Pero no te preocupes que no merece la pena darle más vueltas...

Aprovecho para mostrar una página prototipo de lo que intento hacer:
http://www.pepemolina.com/archivos_bd/index.html

Las imágenes se suben e inmediatamente están disponibles para su uso.

Pienso que puede ser interesante para un libro de visitas... por cierto que estoy adaptando también un menú de tunait (Es un tema del foro javascript)

Saludos
  #76 (permalink)  
Antiguo 30/03/2004, 20:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm bueno ..

$sql="insert id into archivos values ('')";

si en un campo autoincremental no se indica valor para esa variable se autoincrementa por si solo (una especie de id=id+1) al crear un campo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #77 (permalink)  
Antiguo 31/03/2004, 05:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
¡Otra cosilla!

Hola otra vez:

He visto que no se ven las imágenes bmp... supongo que solo valen los gif, jpg y png.

Si alguien me lo puede confirmar se lo agradecería, así pongo algunas restricciones.

Saludos
  #78 (permalink)  
Antiguo 31/03/2004, 06:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm jeje.. eso deberías saberlo tu más que nosotros caricatos xDD ..

Las visualización de las imagenes en sí depende del cliente (navegador) que uses .. Tal vez si tiene asociado los .bmp (extensión) al navegador usado vean esos .bmp .. pero lo más común son las extensiones que mencionas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #79 (permalink)  
Antiguo 31/03/2004, 08:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

La pregunta anterior es porque me fijé en el listado de imágenes: http://www.pepemolina.com/archivos_b...r_imagenes.php
y alguien ha intentado poner un fichero bmp y no se ve (al menos en mi ordenador). Tal vez sea por la versión php instalada en mi servidor o porque el fichero que han subido (como se trata de pruebas no llevo mucho control... ) tiene algún problema. De todos modos es evidente que php reconoció la cabecera.

Por cierto, hablando de control, la versión de ver.php, le puse una pequeña restricción para evitar que suban imágenes indebidas (creo que es muy difícil llevar ese control), añadiendo un campo de nombre activo que por defecto es 1, y si son imágenes malintencionadas cambio el valor de ese campo y redireccionan la imagen hacia una ovejita... (se ve en el listado)

La pregunta la hacía para evitar que suban imágenes que no sean aceptadas... y suponía que ciertos tipos no serían reconocidos, por ejemplo wmf los reconoce explorer y no los reconoce mozilla. Sobre bmp acabo de comprobar que mozilla los reconoce (parece que no subieron una imagen válida)

Saludos
  #80 (permalink)  
Antiguo 31/03/2004, 08:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm bueno .. cuando subes un archivo por HTTP .. en PHP dispones de una variable que indica el tipo de imgen que es (cabecera MIME del archivo) .. más seguro de evaluar el tipo de archivo que por una extensión que podría ser modificada malintencionadamente .. Así que si quieres filtrar algún(s) tipo(s) de archivos .. tan sólo tienes que tomar esa variable en el proceso de Upload. Lo malo que tiene "PHP" es que como lenguaje del lado del servidor . .hasta que la imagen/archivo no ha subido completamente al servidor no se puede determinar el tipo de archivo .. Pero, para una "pre-validación" podrías usar javascript para limitar el nombre del archivo por su extensión y por último que sea PHP y la variable mencionada quien determine si corresponde o no (por si algún malintencionado te cambia la extensión del archivo siendo que según su formato MIME sea de otro tipo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #81 (permalink)  
Antiguo 02/04/2004, 11:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Ya hice la pre-validación javascript, y me ha ido bien, pero mi problema ahora es que quiero limitar el tamaño de los archivos... ... con javascript se puede saber el tamaño, y el peso se puede saber con explorer (el gran problema de javascript... la compatibilidad entre navegadores) pero como no es algo estandar intenté hacerlo con php y no me hace caso:

Tengo esto en el archivo equivalente a insertar.php de este tema:

$binario_peso=$_FILES['archivo']['size'];
...
$maxBytes = $_POST["maxbytes"];

Cambié el método get por post... supongo que no tendrá importancia.


if ($binario_peso > $maxBytes) {
header("location: ...");
}

... con esto, cuelan imágenes con un tamaño mucho más grande ...
$maxBytes al ser pasada por un formulario es una cadena y supongo que $binario_peso es un entero.
... o tal vez al no estar la imagen cargada, el valor no es el correcto.

Saludos
  #82 (permalink)  
Antiguo 02/04/2004, 12:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
... con esto, cuelan imágenes con un tamaño mucho más grande ...
$maxBytes al ser pasada por un formulario es una cadena y supongo que $binario_peso es un entero.
Una de las virtudes (para unos o defectos para otros) es que PHP convierte tipos .. así que tu comparación de ambas variables sería correcta .. De todas formas si quieres puedes forzar el tipo de variable que usas con "type casting" por ejemplo

http://www.php.net/manual/en/languag...es.typecasting

Con respecto al problema con la validación del peso del archivo .. revisa:

http://www.php.net/features.file-upload

Donde veras un parámetro más que definir en tu formulario:
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

Lee los comentarios de los usuarios de ese tema del manual oficial de PHP .. hay comentarios sobre 'size' ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #83 (permalink)  
Antiguo 19/04/2004, 13:25
 
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 3 meses
Puntos: 0
Problema con ver imagen

Excelente esta perfecto!!!!

Nada más que tengo un problemita...

Todo me jala a la perfección el problema es que cuando despliego la imagen me la despliga a la mitad lo de mas me la pone deforme y eso es con varias imagenes...

ya probe con el sistema de archivos y tambien me pone la imagen igual y almacenado las imagenes en la la bd de datos tambien me pone la imagenes incompletas...

tambien proble con otros archivos y lo mismo...

que puede pasar, porque se dañan los archivos

cual seria la solución???? puede ser mi servidor??? tengo que modificar algo en especial???

ayudenme porfavor


Saludos
JC
  #84 (permalink)  
Antiguo 19/04/2004, 14:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Leistes la NOTA del "tutorial"?

Cita:
NOTA: El artículo está usando campos tipo BLOD para almacenar el archivo binario. Su limite es de 65535 bytes (64 Kbytes), si desean almacenar archivos de peso superior deben de cambiar el tipo de campo "archivo_binaro" a un MEDIUMBLOB (16Mbytes max.) o a un LONGBLOB (4 Gbytes). Más info al respecto en:

http://www.mysql.com/doc/en/Column_types.html


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #85 (permalink)  
Antiguo 20/04/2004, 07:44
 
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 3 meses
Puntos: 0
Gracias por contestar...

estoy usando el campo tipo mediumblob...

tu crees que pueda ser mi versión de PHP, estoy manejando la versión 4.2.2.

y tambien intente subir archivos al servidor por medio de un copy y los mismo la imagen me la pasa a la mitad...

que crees que pueda ser???

Saludos y gracias
JC
  #86 (permalink)  
Antiguo 20/04/2004, 08:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. que tamaño en bytes tienen los archivos que subes?

En cuanto al archivo a subir ... tienes várias limitaciones que pueden afectar:

En Mysql tienes el tipo de campo (como la NOTA que puse mencioné) ..

En PHP tienes todas las restricciones del Upload en las directivas (php.ini ver también en phpinfo()):

max_upload_filesize
post_max_size

(o similares .. las escribí de memoria ..)

Y para más remata .. el servidor HTTP que uses también puede limitar el tamaño de datos que pueda recibir.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #87 (permalink)  
Antiguo 18/05/2004, 08:50
 
Fecha de Ingreso: enero-2004
Ubicación: This Planet
Mensajes: 46
Antigüedad: 20 años, 3 meses
Puntos: 0
Insertar Archivo en una BD informix

Hola que tal amigos tengo un problemita, a ver si pueden ayudarme,
Estoy trabajando con una BD informix y deseo insertar archivos en una tabla, utilice este codigo pero igual no inserta
esta es mi tabla de prueba:

CREATE TABLE doc(
descripcion char(60),
documento BLOB
);

como informix maneja los tipos de datos blob para estos casos, hago uso de el.

una vez que envio el formulario y capturo los datos hago lo siguiente:

if (empty($_FILES['archivo']['name']))
{ header("location: ../nueva_solucion.htm?caso=$caso&proceso=falta_indica r_fichero");
exit;
}

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

// leer del archvio temporal .. el binario subido.
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));

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

//insertamos los datos en la BD.
ifx_query("INSERT INTO doc VALUES ('descripcion', '$binario_contenido')", $conect_id) or die("No se pudo insertar el registro en la base de datos.");
exit;

pero igual me da error, me dice que no se inserto el registro, la verdad es que no se que pueda estar ocacionando el error, agradeceria mucho que me ayudaran en esto.
__________________
:cool: Hagas lo que hagas, que sea eficiente :arriba:

Última edición por david-SM; 18/05/2004 a las 08:53
  #88 (permalink)  
Antiguo 18/05/2004, 11:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hay un detalle ...

No todos los motores de BD trabajan igual los archivos binários ..Por eso el ejemplo está centrado con ejemplo para Mysql.

Inicia un nuevo tema (haciendo si quieres referencia a este y el código que usas) para ver si alguien conoce o trabaja con Informix y campos binarios ..

Por ejemplo ... lo primero que tendrías que ver es el error concreto que te está arrojando tu consulta .. alguna función equivalente a la mysql_error() para ver el error concreto de SQL o conexión que puedas tener.

Pero insisto .. en un nuevo tema. Cada BD tiene su forma própia de trabajar con este tipo de archivos aunque algunas "coincida".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #89 (permalink)  
Antiguo 03/06/2004, 23:28
Avatar de antihem  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 227
Antigüedad: 19 años, 11 meses
Puntos: 0
Exclamación Errores al subir

Este es el script que modifique en base del de Cluster..
al subirlo a la web y provarlo me salieron los errores de abajo.
Código PHP:
<?php 
if (empty($_FILES['archivo']['name'])){ 
header("location: proceso.php?proceso=forma"); 
exit; 

// Conecta la Base de Datos
include('conecta.php');
$nombre_tmp=$_FILES['archivo']['tmp_name'] ; 
$archivo_contenido addslashes(fread(fopen($nombre_tmp"rb"), filesize($nombre_tmp))); 

$archivo_nombre=$_FILES['archivo']['name']; 
$archivo_peso=$_FILES['archivo']['size']; 
if (
$archivo_peso 41000)
{
$archivo_tipo=$_FILES['archivo']['type']; 
//insertamos los datos en la BD. 
$query "INSERT INTO avatares VALUES ('$user','$archivo_contenido')"
mysql_query($query,$id) or die("No se pudo insertar los datos en la base de datos."); 
echo 
"<meta http-equiv='refresh' content='1;URL=index.php'>";
}
else
{
echo 
"La imagen deberia pesar maximo 40Kb";
}
exit; 
?>
~Errores

Warning: fopen(): open_basedir restriction in effect. File(/tmp/phpGM8dbi) is not within the allowed path(s): (/home/webcindario/iforums) in /home/webcindario/iforums/cambia_avatar_proceso.php on line 9

Warning: fopen(/tmp/phpGM8dbi): failed to open stream: Operation not permitted in /home/webcindario/iforums/cambia_avatar_proceso.php on line 9

Warning: filesize(): open_basedir restriction in effect. File(/tmp/phpGM8dbi) is not within the allowed path(s): (/home/webcindario/iforums) in /home/webcindario/iforums/cambia_avatar_proceso.php on line 9

Warning: fread(): supplied argument is not a valid stream resource in /home/webcindario/iforums/cambia_avatar_proceso.php on line 9
No se pudo insertar los datos en la base de datos.

Me podrian decir como lo puedo solucionar?
Por favor, Muchas gracias por su tiempo
__________________
- -
:neurotico eso fue un php warning ?
creo q si... :golpeado:
  #90 (permalink)  
Antiguo 04/06/2004, 06:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
antihem ..

En "webcindario" y la mayoría de servicios de hosting gratutitos este ejemplo NO funciona ...

En tu caso particular es por qué open_base_dir (configuración de PHP que lo puedes ver en un phpinfo() si te deja hacerlo ..) te está restringiendo el acceso de archivos a los que tu sitio manejas .. pero no puedes acceder (por lo menos como lo hace el ejemplo) directamente.

La única solución para estos casos es:
1º Mover el archivo subido (por Upload HTTP) con las funciones: move_uploaded_file() hacia un directorio que esté bajo tu control de tu sito (ahí ya no tendrías problemas con "open_base_dir" ..

2º Cambiar la ruta que usa fopen() para abrir el archivo .. En ese caso será la ruta y nombre de archivo que dejes en tu directorio (destino) de tu própio sitio y que indicas en la función anterior (move_uploaded_file() ..)

Un saludo,
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:06.