Foros del Web » Programando para Internet » PHP »

mostrar imagen a partir de url en mysql

Estas en el tema de mostrar imagen a partir de url en mysql en el foro de PHP en Foros del Web. Hola, pues como dice el título, mi objetivo es subir una imágen a una carpeta de mi servidor y luego mostrarla ahí mismo. Tengo una ...
  #1 (permalink)  
Antiguo 18/04/2012, 11:43
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
mostrar imagen a partir de url en mysql

Hola, pues como dice el título, mi objetivo es subir una imágen a una carpeta de mi servidor y luego mostrarla ahí mismo.

Tengo una carpeta en la raíz del directorio de mi servidor llamada imagenes, ahí guardo las imágenes, luego tengo una tabla llamada imagenes donde guardo, el usuario que sube la foto y la id de la foto.

Este es mi código:

formulario:
Código PHP:
<div class="subirimagen" name="subirimagen" >
No has seleccionado ninguna foto de perfil.
<
form action="subirimagenes.php" method="post" enctype="multipart/form-data">
  <
input name="archivo" type="file" size="35" />
  <
input name="enviar" type="submit" value="Upload File" />
  <
input name="action" type="hidden" value="upload" />     
</
form>

</
div
Y el PHP:

Código PHP:
<?php

session_start
();

$correouser=$_SESSION['correo'];


$conexionmysql_connect("xx","xx","xx") or die("Error al conectar"); 
mysql_select_db("xx",$conexion) or die ("Error la seleccionar la base de  datos ");
$comprobacion mysql_query("SELECT * FROM registrados WHERE correo='$correouser'",$conexion) or die ("Query Fallo".mysql_error());
if( 
mysql_num_rows($comprobacion) ) {
            
$row mysql_fetch_array($comprobacion);
        
$nombresesion $row["nombre"];
$apellidossesion $row["apellidos"]; 
$idsesion $row["id"];
}
 
 
$status "";
if (
$_POST["action"] == "upload") {
    
// obtenemos los datos del archivo
    
$tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];    
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo $idsesion;
   
    if (
$archivo != "") {
        
// guardamos el archivo a la carpeta imagenes
        
$destino ="imagenes/".$prefijo."_".$archivo;
    
$conexionmysql_connect("xx","xx","xx") or die("Error al conectar"); 
mysql_select_db("xx",$conexion) or die ("Error la seleccionar la base de  datos ");
$query "INSERT INTO imagenes (usuario, ruta) ";
$query.="VALUES ('".$idsesion."' , '".$destino."') ";
$resultado mysql_query($query$conexion) or die(mysql_error());

$conexionmysql_connect("xx","xx","xx") or die("Error al conectar"); 
mysql_select_db("xx",$conexion) or die ("Error la seleccionar la base de  datos ");
$result mysql_query("SELECT * FROM imagenes "$conexion); 
$row mysql_fetch_array($result); 

$ruta$row["ruta"];
 
echo 
"<br><img src='$ruta' title='imagen'>";
        
        if (
copy($_FILES['archivo']['tmp_name'],$destino)) {

            
$status "Archivo subido: <b>".$archivo."</b>";
            echo 
" ".$status." ";
        } else {
            
$status "Error al subir el archivo";
        }
    } else {
        
$status "Error al subir archivo";
    }
}
?>
Cuando ejecuto el script me muestra un cuadro blanco y la información de la subida que yo le he ordenado mostrar, pero la foto no se muestra :S
gracias!
  #2 (permalink)  
Antiguo 18/04/2012, 12:52
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: mostrar imagen a partir de url en mysql

En apariencia no parece que existe error en el script. Yo lo primero que haria seria revisar que al imprimir la ruta me de algo del estilo.

imagenes/1_imagen.jpg;

En caso de que este imprimiendo bien la ruta verifica que la ruta este bien, es decir si tu archivo esta en la raiz es de esperarse que en esa raíz exista una carpeta llamada imagenes. Es posible que este fallando tambien por eso.

Igual yo le encuentro una debilidad al script y es que no se esta verificando si en realidad el archivo que se sube es en realidad una imagen. Ahi el usuario malicioso te podria meter un gol e introducir otra cosa.

Revisa esas dos cosas y nos comentas como te fue.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 18/04/2012, 14:06
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: mostrar imagen a partir de url en mysql

Hmm la ruta me la devuelve bien, creo que es un error de que la ruta de la imagen es incorreta por eso he revisado bien el FTP y he cambiado esta línea:

Código PHP:
$destino ="/skyshallow.atwebpages.com/imagenes/".$prefijo."_".$archivo

Pero me da este error al ejecutar el script:

Warning: copy(/skyshallow.atwebpages.com/imagenes/1_marc.jpg) [function.copy]: failed to open stream: No such file or directory in /srv/disk4/995851/www/skyshallow.atwebpages.com/subirimagenes.php on line 47

Sabes por qué sale este error? Mi servidor es AwardSpace, lo digo por si tienes alguna experiencia en este servidor. Gracias.
  #4 (permalink)  
Antiguo 18/04/2012, 15:02
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: mostrar imagen a partir de url en mysql

error de privilegios puede que la ruta no exista o puede que no tengas privilegios para usarla...
  #5 (permalink)  
Antiguo 18/04/2012, 15:03
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: mostrar imagen a partir de url en mysql

El error es muy claro, te está diciendo que no existe archivo o directorio en:

/srv/disk4/995851/www/skyshallow.atwebpages.com/subirimagenes.php on line 47

Si vas a usar la ruta absoluta en lugar de la relativa deberias definirla así
Código PHP:
$destino ="http://skyshallow.atwebpages.com/imagenes/".$prefijo."_".$archivo;
//en lugar de lo que haces ahora
$destino ="/skyshallow.atwebpages.com/imagenes/".$prefijo."_".$archivo
Igual revisa que el problema no se deba a permisos del archivo, de pronto estas tratando de visualizar una foto sobre la que no tienes permisos.
__________________
Blog de humor http://elcuasatar.net63.net/
  #6 (permalink)  
Antiguo 18/04/2012, 15:27
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: mostrar imagen a partir de url en mysql

Ya tengo bien la ruta pero el problema es que me sale el símbolo de una imagen mala como una imágen rota y no muestra la imágen correcta.
Que crees que es?
  #7 (permalink)  
Antiguo 18/04/2012, 15:32
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: mostrar imagen a partir de url en mysql

Por favor leer lo que escribo antes de preguntar.

Cita:
Igual revisa que el problema no se deba a permisos del archivo, de pronto estas tratando de visualizar una foto sobre la que no tienes permisos.
Si no es eso, no se me ocurre que mas podria llegar a ser.
__________________
Blog de humor http://elcuasatar.net63.net/
  #8 (permalink)  
Antiguo 18/04/2012, 15:33
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: mostrar imagen a partir de url en mysql

Cita:
Iniciado por cuasatar Ver Mensaje
Por favor leer lo que escribo antes de preguntar.



Si no es eso, no se me ocurre que mas podria llegar a ser.
Ya lo he leido y ya le he dado todos los permisos a la carpeta y a la subcarpeta, no sé que ocurre.
  #9 (permalink)  
Antiguo 18/04/2012, 19:32
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: mostrar imagen a partir de url en mysql

Cita:
Ya lo he leido y ya le he dado todos los permisos a la carpeta y a la subcarpeta, no sé que ocurre.
Por lo que indicas o está mal la ruta o está sin permisos adecuados. Verifica que la carpeta donde estan las imagenes tenga permisos 0755 y las imagenes tengan un permiso de 0644.

Si la ruta la tienes bien deberias poder ver las imagenes colocando directamente la dirección en el navegador, es decir escribiendo algo asi:

www.mipagina/imagenes/1_foto.jpg

Si después de todo esto aun no es posible ver la imagen, que alguien más te colabore porque la verdad no se me ocurre que más podria llegar a ser. Igual si lo solucionas por favor dinos como lo logras.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: formulario, imagenes, mysql, sql, tabla, url, usuarios
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 21:03.