1. ¿Buscando un Banco para abrir tu primera cuenta de ahorros? Revisa nuestro comparativo de cuentas cero mantenimiento haciendo clic aquí.
    Ocultar anuncio

Intentando mostrar una imagen: problema con rutas

Publicado en 'Webmasters' por tirengarfio, 26 Nov 2008.





  1. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0




    Saludos,

    tengo 3 archivos php/html que he pegado un poco mas abajo:

    - Un archivo que es un formulario para que el usuario inserte sus datos y suba su avatar (.gif).
    - Un archivo que recibe los datos del formulario y los sube a una tabla de una base de datos MySQL.
    - Un archivo que muestra la primera linea de la tabla antes mencionada.

    Mi problema:

    tras subir el avatar, en la base de datos se almacena en una ruta que yo indico ('/opt/lampp/htdocs/Sites/red_social/uploaded/image.gif').
    Al intentar mostrar la imagen en el navegador usando esa ruta, la imagen no aparece, ya que la ruta contiene directorios que no tienen nada que ver con
    el servidor web.

    Se me ha ocurrido que puede haber alguna funcion que substraega una parte concreta de una cadena, de manera que
    me pueda quedar solo con la parte de la cadena que me interesa.

    ¿Cual es vuestro consejo?

    Tambien podeis criticarte mi codigo, puesto que estoy empezando a programar (webs)...


    PHP:
    <!-- 
    Este codigo recoge los datos de "formulario.html" e inserta los datos
    en una fila de la tabla.
     -->

    <html>
    <head>

    </head>

    <body>


    <?php

    // Nos conectamos al servidor mysql.
    mysql_connect("localhost""root""") OR die(mysql_error()); 

    // Seleccionamos la base de datos "red_social".
    mysql_select_db("red_social") OR die(mysql_error());


    // Insertamos la imagen del formulario en "$ruta".
    $ruta='/opt/lampp/htdocs/Sites/red_social/uploaded/image.gif';
    move_uploaded_file($_FILES['file']['tmp_name'],$ruta);


    // Insertamos los datos provenientes del formulario de registro en la tabla "amigos".
    mysql_query("insert into amigos (nombre, apellidos, edad, telefono, email, domicilio, perfil, avatar) values('$nombre', '$apellidos','$edad','$telefono','$email','$domicilio','$perfil', '$ruta')") OR die(mysql_error());

    // 
    //mysql_query("insert into amigos (avatar) values ('$ruta')");


    ?> 

    </body>
    </html>


    <!-- 
    Este codigo muestra  los elementos recogidos en la primera fila
    de la tabla "amigos"-->



    <html>
    <head>

    </head>

    <body>


    <?php

    // Nos conectamos al servidor mysql.
    mysql_connect("localhost""root""") OR die(mysql_error()); 

    // Seleccionamos la base de datos "red_social".
    mysql_select_db("red_social") OR die(mysql_error());  

    $result mysql_query("select * from amigos") OR die(mysql_error());

    // Extraemos la primera fila de "amigos" y la pasamos a "$row".
    $row mysql_fetch_array($result);

    // imprimimos los dos elementos de la unica fila de la tabla "clientes".
    echo $row["nombre"];
    echo 
    "<br>";
    echo 
    $row["apellidos"];
    echo 
    "<br>";
    echo 
    $row["edad"];
    echo 
    "<br>";
    echo 
    $row["telefono"];
    echo 
    "<br>";
    echo 
    $row["email"];
    echo 
    "<br>";
    echo 
    $row["domicilio"];
    echo 
    "<br>";
    echo 
    $row["perfil"];
    echo 
    "<br>";
    echo 
    $row["avatar"];
    $rutaa=row["avatar"];
    echo 
    "<img src='$rutaa'>";

    ?> 

    </body>

    </html>



     


  2. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    PHP:
    // Insertamos la imagen del formulario en "$ruta".
    $ruta='uploaded/image.gif';
    Con eso basta :)
     
  3. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0
    gracias, ha funcionado!
    imagino que tan solo has imaginado que el archivo que muestra los los datos (primera fila de la tabla) estaba situado en el mismo directorio que el directorio "uploaded", no?


    Por lo que veo hay dos tipos de rutas relativas: con respecto al directorio "htdocs" y con respecto al fichero (como en este caso), no?
     
  4. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    Lo que yo me imagino es que tus archivos PHP están dentro del directorio red_social y como dentro de ese directorio está el directorio uploaded simplemente basta con poner esa ruta que te di para imprimir en pantalla el avatar o guardarlo en MySQL.

    Saludos.