1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

formulario de altas e imagenes

Tema en 'Programación y Diseño Web' iniciado por marzupial, 4 Nov 2007.

  1. marzupial

    marzupial Usuario activo

    Estoy haciendo un formulario de altas siguiendo el tutorial de
    ELQUIQUE donde se agregan nuevas ciudades <a href="http://www.tallerwebmaster.com/Tutorial-Ingreso-de-Ciudades-Web-de-Bienes-Raices-Inmobiliarias-c-116.html" target="_blank">http://www.tallerwebmaster.com/Tutorial-In...rias-c-116.html</a>
    tambien quiero guardar la imagen de la ciudad en un campo foto mejor dicho la ruta de la imagen
    por eso he seguido el tutorial para subir las imagenes al servidor <a href="http://www.tallerwebmaster.com/Tutorial-Publicar-Imagenes-en-Internet-c-44.html" target="_blank">http://www.tallerwebmaster.com/Tutorial-Pu...ernet-c-44.html</a>
    es decir subirla a una carpeta especifica pero solo puedo subir la imagen a determinada carpeta
    ¿como haria para guadar en el campo foto una ruta por ejemplo hardware/imagen025.png ?
    la verdad no conosco mucho del tema pero como hacen ustedes para dar de alta a un campo imagen
     
  2.  
  3. marcus aurelio

    marcus aurelio Nuevo usuario

    hola...

    y sien vez de guardar laruta completa guardas solo el nombre y luego en el html establesces la ruta... also asi mira..

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1--><img src="carpeta/<?php echo $row['foto'];?>"><!--c2--></div><!--ec2-->
     
  4. marzupial

    marzupial Usuario activo

    No te entendi en todo caso donde agregaria ese codigo el script esta asi:
    <html>
    <body>
    <form action="1403.php" method="post" name="frmDatos" id="frmDatos" enctype="multipart/form-data">
    <label>Nombre:</label>
    <input type="text" name="txtNombre" id="txtNombre"><br>
    <label>Seleccione archivo
    <input name="archivo" type="file" id="archivo"></label><p>
    <input type="submit" name="cmdAceptar" id="cmdAceptar" value="Aceptar">
    </form>
    </body>
    </html>
    y el script 1402.php va asi
    <?php
    $conexion = mysql_connect('localhost', 'root', '');
    mysql_select_db('inmobiliaria');
    if (isset($_POST['txtNombre'])) {
    @mysql_query("INSERT INTO ciudades SET nombre = '" . $_POST['txtNombre'] . "'");
    echo 'Ciudad agregada correctamente<p>';
    } else {
    echo 'No se pudo agregar el registro';
    }
    mysql_close($conexion);

    //guardando el archivo en una carpeta
    move_uploaded_file($_FILES['archivo']['tmp_name'], 'C:/apache/htdocs/altas/ima/' . $_FILES['archivo']['name']);
    echo "El archivo subio correctamente";
    ?>

    En todo caso podrias mostrar el codigo que utilizas para guardar un campo foto(la ruta)
    Salu2
     
  5. marcus aurelio

    marcus aurelio Nuevo usuario

    a ver si me explico, mejor... y si uso los mismos scripts que estabas usando.. por ejemplo el tuto de elquique

    el codigo que el usa es este...
    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1--><?php
    move_uploaded_file($_FILES['archivo']['tmp_name'], '/home/usuario/public_html/archivosonline/' . $_FILES['archivo']['name']);
    ?> <!--c2--></div><!--ec2-->

    eso esta bien... el esta guardando los archivos en la carpeta si no entiendo mal.... archivosonline, ¿bien? vos la guardaria en la carpeta que decida en tu servidor... pero ojo.... que vos estavas usando...
    'C:/apache/htdocs/altas/ima/', esto te puede andar bien en local pero cuando lo subas a unserver no... por lo tanto... pensa en esto...

    si vos pones el script php.. en un archivo y dirigis el formulario a ese archivo... por ejemplo

    formulario.php
    script.php

    y los dos estan en la carpeta raiz del sitio.... ok??

    entonces creamos una carpeta llamada imagenes,,, donde vas a cargar todas las imagenes... ok??

    dentro de script php.... tendrias que hacerle la siguiente modificacion al codigo del quique

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1--><?php
    move_uploaded_file($_FILES['archivo']['tmp_name'], 'imagenes/' . $_FILES['archivo']['name']);
    ?> <!--c2--></div><!--ec2-->

    y ahi.. las imagenes irian a la carpeta imagenes...

    ahora retomando el tema de guardar la ruta... y este peqeuño codigo..

    <img src="carpeta/<?php echo $row['foto'];?>">

    no es para cargar la imagen al servidor si no para mostrarla... es decir... no hace falta que guardes la ruta en la base de datos... simplemente traes los contenidos de la base de datos... y le antepones la ruta en la pagina en la que vas a mostar la imagen... en este caso y suponiendo que el campo donde guardas los nombres de las fotos se llame foto y la tabla imagenes.... haces lo siguiente

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    <?php

    //conectas a la base de datos como corresponde
    mysql_connect("tu_host","tu_usuario","tu_password");
    mysql_select_db("nombre_de_tu_db");
    //creas al query
    $consulta=mysql_query("select foto from imagenes");
    $row_consulta=mysql_fetch_assoc($consulta);

    //ahora para mostrar la imagen usas esto...

    <img src="imagenes/<?php echo $row_consulta['foto'];?>">

    ?>
    <!--c2--></div><!--ec2-->

    entonces de esta forma.. imprimis la foto sin guardar la ruta en la base de datos.... ya que no hace falta....

    espero haberte ayudado... disculpen pero estoy algo dormido.... saludos.
     
  6. Carxl

    Carxl Nuevo usuario

    <!--quoteo(post=261905:date=Nov 6 2007, 08:59 PM:name=marzupial)--><div class='quotetop'>CITA(marzupial @ Nov 6 2007, 08:59 PM) [snapback]261905[/snapback]</div><div class='quotemain'><!--quotec-->

    //guardando el archivo en una carpeta
    move_uploaded_file($_FILES['archivo']['tmp_name'], 'C:/apache/htdocs/altas/ima/' . $_FILES['archivo']['name']);
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    Hola marzupial, cómo andas???

    Pues fuera de tratar de aclararte lo que te dice marcus aurelio, también es para decirte que no debes utilizar este tipo de direcciones al subir archivos, por que le estás dando una dirección absoluta al archivo y eso te presentará problemas al tratar de subir achivos en linea. La idea sería hacerlo así:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    ima/' . $_FILES['archivo']['name']
    <!--c2--></div><!--ec2-->

    Me entiendes??

    En cuanto a lo que necesitas, pues es acomodar un poco la idea :)

    Quieres guardar el nombre de la imagen en la DB, pues debes agregar en tu DB un campo "imagen", normalmente es de tipo varchar, y cuando hayas hecho el move_uploaded_file, te llevas el nombre de la imagen a una variable:
    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    <?php
    if(move_uploaded_file($_FILES['archivo']['tmp_name'], 'ima/' . $_FILES['archivo']['name']))
    {
    $nombre_imagen=$_FILES['archivo']['name'];
    }
    ?>
    <!--c2--></div><!--ec2-->

    De esa manera obtienes el nombre del archivo y ya puedes realizar tu insert:
    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    if (isset($_POST['txtNombre'])) {
    @mysql_query("INSERT INTO ciudades SET nombre = '" . $_POST['txtNombre'] . "', imagen='".$nombre_imagen."'");
    echo 'Ciudad agregada correctamente<p>';
    } else {
    echo 'No se pudo agregar el registro';
    }
    <!--c2--></div><!--ec2-->

    Espero te haya quedado claro!!!! :vale:

    Saludos :adios:

    Jejeje marcus aurelio, andabas por ahí... pinchaste por unos segundos antes que yo... jajaja

    Saludos :adios:
     
  7. marcus aurelio

    marcus aurelio Nuevo usuario

    si.... Carxl ... casi nos pisamos... jeje... de todas formas bien que te sumaste por que con lo dormido que esrtoy pobre marzupial lo voy a confundir mas de lo que lo voy a ayudar... saludos pa todos...
     
  8. elQuique

    elQuique Usuario activo

    :) buenos aportes :p
     
  9. marzupial

    marzupial Usuario activo

    :drunk: Bien marzupiales ,solo me queda probar el codigo haber que pasa
    Ah estube revisando el foro y por ahi me parece que ElQUIQUE dijo que el move_uploaded_file
    solo se puede utilizar con la ruta es decir
    si la linea de codigo esta asi
    move_uploaded_file($_FILES['archivo']['tmp_name'], 'C:/apache/htdocs/imagenes/' . $_FILES['archivo']['name']);
    y la subo a un servidor seria asi
    move_uploaded_file($_FILES['archivo']['tmp_name'], 'http://marzupial.6te.net/imagenes/' . $_FILES['archivo']['name']);
    no va a correr
    En fin solo haciendo las respectivas pruebas se veran los resultados
     
  10. elQuique

    elQuique Usuario activo

    Las rutas son locales, al server no se puede usar rutas HTTP ya que ahí estas violando permisos :p de una url donde no tienes acceso.

    /home/usuario/public_html/imagenes/

    seria en un sitio con linux cpanel
     
  11. marzupial

    marzupial Usuario activo

    QUE ALGUIEN ME EXPLIQUE "subir imagenes al servidor"
    tengo el sigte formulario
    <form method="post" enctype="multipart/form-data" action="b.php">
    <input type="file" name="file">
    <input type="submit" name="submit" value="Subir imagen">
    </form>
    y el archivo b.php va asi
    <?
    $destino = 'imagenes';
    copy($_FILES['file']['tmp_name'], $destino.'/'.$_FILES['file']['name']);
    echo "archivo subio corretamente<p>";
    ?>

    Por que el codigo me funciona en mi server local y al subirlo a uno de internet no
    incluso al no seleccionar ningun archivo es decir dejar en blanco el <input type="file" name="file">
    deberia arrojar error pero nunca arroja ningun error y no sube el archivo al servidor
    por que pasa eso? <_<
     
  12. marcus aurelio

    marcus aurelio Nuevo usuario

    para que te funcione en el servidor remoto... tenes que usar.

    move_uploaded_file, en vez de copy es decir

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    <?
    $destino = 'imagenes';
    move_uploaded_file($_FILES['file']['tmp_name'], $destino.'/'.$_FILES['file']['name']);
    echo "archivo subio corretamente<p>";
    ?>

    //en vez de
    <?
    $destino = 'imagenes';
    copy($_FILES['file']['tmp_name'], $destino.'/'.$_FILES['file']['name']);
    echo "archivo subio corretamente<p>";
    ?>&nbsp;&nbsp;
    <!--c2--></div><!--ec2-->

    hechale un vistaso a

    <a href="http://ar.php.net/manual/es/function.move-uploaded-file.php" target="_blank">http://ar.php.net/manual/es/function.move-uploaded-file.php</a>

    y otro a

    <a href="http://ar.php.net/manual/es/function.copy.php" target="_blank">http://ar.php.net/manual/es/function.copy.php</a>

    saludos...
     
  13. marzupial

    marzupial Usuario activo

    Intente con move_uploaded_file luego con copy para luego volver al move_uploaded_file
    y las imagenes no suben al server ,ELQUIQUE dijo que el move_uploaded_file no acepta http
    es decir tengo que conseguir la ruta del servidor segun entiendo las rutas de los servers linux son
    /home/usuario/public_html/imagenes/ en fin mejor me relajo y sigo trabajando en local probando
    mis paginas ya que los server de internet que uso son gratis y me imagino que al comprar espacio en uno
    de pago me daran la ruta para poder utilizar la funcion move_uploaded_file,mi codigo esta asi:
    <?
    $ruta = "imagenes/";
    $vacio = "imagenes/no_picture.png";

    $destino = 'ftp://marzupial.6te.net/imagenes'; //utilizando el server de internet
    $destino = 'imagenes'; //utilizando el server de local

    if (file_exists("$file")) {
    move_uploaded_file($_FILES['file']['tmp_name'], $destino.'/'.$_FILES['file']['name']);
    echo "El archivo subio corretamente :<p>";
    $nom_ima = $_FILES['file']['name'];
    $ima = $ruta.$nom_ima;
    echo $ima;
    }
    else {
    echo "El campo imagen esta vacio :<p>";
    $ima = $vacio;
    echo $ima;
    }
    ?>
    Me podrian dar un ejemplo de como seria la ruta de un servidor de pago solo a modo de ejemplo
    claro si es que estoy en lo correcto :huh:
     
  14. marcus aurelio

    marcus aurelio Nuevo usuario

    usa esta ruta para todo (LOCAL Y REMOTO)

    $destino = 'imagenes';

    te pregunto ... tenes creada..
    la carpeta imagenes?? si esta esta creada.... le marcaste los atributos de lectura y escritura en 777??

    si todo esto esta hecho... recorda que la para que eso funcione .. deberias tener los archivos dispuestos de esta manera

    carpeta (carpeta raiz o cualquiera)
    |
    |_ imagenes( carpeta atributos 777)
    | |
    | |_imagenes_cargadas.jpg
    |
    |
    |_ script.php( archivo script)

    que dibujanteeeee!!!! jajaja

    ahora que lo veo mejor... veo que hay algo que creo no esta del todo bien....

    if (file_exists("$file"))

    en niongun momento definis $file.... por eso... nunca te sube la imagen.... por que no existe $file, por lo tanto el if devuelve falso y no ejecuta

    antes de eso.. deberias poner

    $file=$_FILES['file']['tmp_name'];

    o de ultima para probar sacale el if... si te sube bien los archivos.... despus le pones el condicional que necesites
     
  15. marzupial

    marzupial Usuario activo

    el $file biene del formulario <input type="file" name="<b>file</b>"> y como dije el script corre
    perfectamente en local mas no en el server de internet a lo mejor se debe alos permisos 777
    habra que chekar eso
    saludos
     
  16. marcus aurelio

    marcus aurelio Nuevo usuario

    ups.. perdon marzupial... no lo vi...

    de todas formas chequea los permisos y usa la misma ruta para local y remoto

    $destino = 'imagenes';

    yo uso la misma... ruta para los dos y mis scripts funcionan barbaro....
     
  17. elQuique

    elQuique Usuario activo

    Eso eso, las rutas locales son las de la misma máquina donde esta el script tal como dice Marcus :)

    Y los permisos 777 si son importantes, en el pc no se usan pero en internet si o si hay que ponerlos
     
  18. marzupial

    marzupial Usuario activo

    Por fin marcus aurelio finalmente subieron los archivos al server de internet todo era cuestion
    de permisos el bendito 777 jajaja y gracias por la aclaracion final de ELQUIQUE, a por cierto
    ya que la mayoria de los que siguen los tutos de elquique somos principiantes me parece
    que se debe hacer esa pequeña aclaracion de los permisos en el tuto jeje
    hasta la proxima :vale:
     
  19. marcus aurelio

    marcus aurelio Nuevo usuario

    felicitaciones marzupial... me alegro de que te halla ido bien...
    lo de los permisos es importantisimo... ojo.... a veces se me olvida... y siempre que me pasa.... pego le mismo grito... el cual no creoque se pueda reproducir....

    por otra parte.. seria bueno que aclares que ruta usaste.. por que eso tambien estuvo... medio complicado en un principio.... asi de paso les queda claro a los que siguen la discusion... o puedan tomarla en algun momento.....

    saludos...
     
  20. elQuique

    elQuique Usuario activo

    No hoy hay que agregar nada :) lo que tienen que hacer es aprender a leer :p jajaja

    Cita de:
    <a href="http://www.tallerwebmaster.com/Tutorial-Publicar-Imagenes-en-Internet-c-44.html" target="_blank">http://www.tallerwebmaster.com/Tutorial-Pu...ernet-c-44.html</a>
    <!--quoteo--><div class='quotetop'>CITA</div><div class='quotemain'><!--quotec-->
    Lo segundo necesario es asignar a la carpeta donde deben quedar los archivos el permiso de escritura, si esta se llama "archivosonline" va a estar ubicada por ejemplo así: /home/usuario/public_html/archivosonline

    Para asignarle el permiso debemos ir por nuestro FTP y con botón derecho, propiedades le asignamos el permiso de escritura 777 a la carpeta "archivosonline"
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    no solo copiar mi código :), la idea es que lean la explicación y aprendan
     
  21. marzupial

    marzupial Usuario activo

    tienes mucha razon a veces por leer rapido se piensa que se entendio
    como funciona algo cuando se omitieron cosas importantisimas como ocurrio ahora
    en fin esto queda de leccion para los demas jeje
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·