Foros del Web » Programando para Internet » PHP »

Problemas con imagenes!!!!!

Estas en el tema de Problemas con imagenes!!!!! en el foro de PHP en Foros del Web. Holas chicos, que tal..... tengo un super problema y espero que alguien me pueda ayudar porque ya llevo tiempo con esto y nada. Bueno cambie ...
  #1 (permalink)  
Antiguo 30/12/2003, 16:58
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Problemas con imagenes!!!!!

Holas chicos, que tal..... tengo un super problema y espero que alguien me pueda ayudar porque ya llevo tiempo con esto y nada.
Bueno cambie de servidor y monte todas mis aplicaciones de php al nuevo servidor (windows, con IIS, php y mysql) estas caracteristicas son iguales al servidor que tenia.
El problema radica en que NO inserta en mi BD el contenido del archivo binario(imagen), inserta el type pero no el contenido del archivo, Mis aplicaciones son las siguientes:

PARA INSERTAR:
$data = addslashes(fread(fopen($form_data, "rb"), filesize($form_data)));
$result = MYSQL_QUERY("INSERT INTO Tabla(NomImagen,TypeImagen) ".
"VALUES('$data','$form_data_type')");
$id= mysql_insert_id() or die (mysql_error());

PARA MOSTRAR:
echo "<div align=center><img src='ver_imagen.php?id=$var1' width='50'></div>";

SCRIPT VER_IMAGEN.PHP:
MYSQL_CONNECT("localhost","","");
mysql_select_db("bd");
$query = "select ID,NomImagen,TypeImagen from Tabla where ID='$id'";
$result = MYSQL_QUERY($query);
$data = MYSQL_RESULT($result,0,'NomImagen');
$type = MYSQL_RESULT($result,0,'TypeImagen');
header("Content-type: $type");
echo $data;

Como ven el codigo es correcto y no entiendo porque NO inserta en la BD. El script no me envia ningun error ni warning, porque sera chicos???, alguien puede ayudarme.
Se los agradeceria mucho si me puedieran orientar la verdad es que no entiendo porque hace esto. De antemano muchas Gracias. Chao
  #2 (permalink)  
Antiguo 30/12/2003, 19:06
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
Lee esto de seguro te servira!!

es un tutorial hecho por Cluster

http://www.forosdelweb.com/showthrea...ardar+archivos
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #3 (permalink)  
Antiguo 30/12/2003, 20:01
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Muchas gracias Gerald , pero lo que no quiero yo es otra rutina puesto que la mia funciona, la verdad lo que no quiero es andar revolviendo codigo.
Otra de las cosas que se me olvido mencionar es que la rutina si funciona al 100% con Apache Web Server, esto es, inserta la en la BD el archivo binario y el type.
Por lo que concluyo que debe de ser algo de la configuración del IIS o del php, pero ya lo revise .
Profis................me pueden orientar. Gracias
  #4 (permalink)  
Antiguo 31/12/2003, 07:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Pero, .. el campo que guarda tu $data .. guarda algún dato? (aunque sea ilegible)

Te lo comento .. por qué el problema puede venir por aquí:

$data = addslashes(fread(fopen($form_data, "rb"), filesize($form_data)));

Ese addslashes() depende su uso o no del estado de:
magic_quotes_gpc (que suele estar a ON por defecto)
y
magic_quotes_runtime (que suele estar a OFF)

Así que revisa tu configuración (del PHP de ese IIS) y prueba a quitar esa función ..

Pero lo primero que debes asegurarte es que ese campo reciba algún dato (sea malo o no) .. pero algo.

Tambien revisa el estado de la directiva:
register_globals

Tal como estás programando .. asumes las variables como "globales" .. cuando por tu seguridad deberías usar $_FILES para acceder al archivo (en el tutorial que te dejó Gerald así se trabajan las variables).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 01/01/2004, 14:58
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Hola Cluster , ya hice lo que me mencionas de probar que $data tenga algun valor y me lleve la gran sorpresa que NO trae nada , no se porque normalmente cuando despliego en pantalla este valor me muestra caracteres raros pero ahora no trae nada, pero ¿¿¿porque????
si en mi php.ini tengo register_globals en ON , ademas si no..... no pasaria las otras variables que tengo, mira haciendo pruebas imprime las siguientes variables;
$form_data = C:\WINNT\TEMP\php1A.tmp
TYPE='image/pjpeg'
$data =
la funcion que utilice fue la siguiente:
$data = fread(fopen($form_data, "rb"), filesize($form_data));
Ah!!! otra cosa
magic_quotes_gpc esta en ON
magic_quotes_runtime en OFF
Ahora estoy mas confundida que nunca, ¿¿porque sera?? , ayuda porfis..... Gracias.
  #6 (permalink)  
Antiguo 02/01/2004, 23:41
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Por favor alguien que me ayude!!!!, se que alguien debe de saber. Gracias
  #7 (permalink)  
Antiguo 03/01/2004, 00:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Simplemente .. por "curiosidad" .. has probado otros códigos similares al que estás haciendo para comprobar o salir de dudas de alguna posible "configuración" de tu php o bien es el código que usas?.

Y a todo esto .. No vemos en ningún sitio el formulario que empleas .. y esto es bien importante por qué en el <form> se define el tipo de dato que enviaras (en este caso mezcla de Texto con binario) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 03/01/2004, 15:48
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Hola Cluster , gracias por contestar . Pues mira esta rutina ya la he puesto en marcha y funciona al 100% el problema es que cuando lo uso con IIS no funciona, esto es la variable $data no trae ningun valor y cuando lo uso con Apache Web Server si funciona, pero no se porque???. Eso es lo que me tiene super confundida, ¿¿porque sera??. Alguien ¿¿sabe porque??. Muchas Gracias por la Ayuda. Gracias y Chao.


FORMA DE LLENADO: (esta_forma.php)
<form method="post" action="<?php echo $PHP_SELF;?>" enctype="multipart/form-data">
<table>
<tr>
<td width="19%"><strong><font color="#9B004E" size="2" face="Verdana, Arial, Helvetica, sans-serif">Texto
del Documento</font></strong></td>
<td width="81%"><textarea name="cuerpo" rows="7" cols="70"></textarea></td>
</tr>
<tr>
<td width="19%"><b>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<font color="#9B004E" size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Imagen:</font></b></td>
<td width="81%"><b>
<input type="file" name="form_data" size="40">
</b></td>
</tr>
</table>
<input type="submit" name="Enviar" value="Enviar Informacion">
<input type="reset" name="Borrar_DatAsp" value="Limpiar Forma">
</form>


INSERTAMOS DATOS:
if($Enviar){
MYSQL_CONNECT("localhost","","");
mysql_select_db("nombre_base");
$data = addslashes(fread(fopen($form_data, "rb"), filesize($form_data)));
$result = MYSQL_QUERY("INSERT INTO Tabla(Cuerpo,NomImagen,TypeImagen) ".
"VALUES('$cuerpo','$data','$form_data_type')") ;
$id= mysql_insert_id() or die (mysql_error());
?>
<meta http-equiv="refresh" content="0; url=esta_forma.php">
<?
MYSQL_CLOSE();
}
  #9 (permalink)  
Antiguo 04/01/2004, 19:49
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Hola Por Favor chicos ayudenme . Please. Gracias
  #10 (permalink)  
Antiguo 05/01/2004, 19:48
 
Fecha de Ingreso: febrero-2003
Ubicación: Distrito Federal
Mensajes: 26
Antigüedad: 14 años, 10 meses
Puntos: 0
Ayuda!!!!!!!!, Porfis.....................
  #11 (permalink)  
Antiguo 06/01/2004, 08:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En tu formulario .. la variable del "file" se llama:

form_data

Y en tu script la llamas como $data cuando debería ser $form_data ...

Fijate que haces:
$form_data_type .. para acceder al formato MIME que tiene la imagen (tipo) ..

(si hubieras puesto antes el formulario... es decir: el código completo . . ... ahyyyyy)

Como consejo .. Te recomiendo -encarecidamente- que uses los arrays superglobales para TODO!! .. $_FILES .. etc (en el link que te dejarón sobre mi tutorial al respecto lo tienes).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 11:03.