Comunidad de diseño web y desarrollo en internet online

Subir archivo a servidor en carpeta específica usando php

Citar            
MensajeEscrito el 27 Feb 2009 01:56 pm
Hola!! Quisiera que me den una mano con este script, no soy muy ducho en PHP, sólo me las arreglo....
Lo que quiero hacer es, mediante un formulario en html, que los usuarios que visiten mi web puedan subir una foto a mi servidor usando dicho formulario y mediante PHP y que se me envíe (una vez que el usuario envió dicho form) una notificación a mi e-mail con los datos de la persona y el nombre de la foto que subió. Todo esto me anda a medias, más abajo les dejo el código que fui armando de buscar en internet y juntando pequeñas partes de distintos códigos.
Lo que me falla es lo siguiente:
1. quiero especificar una carpeta donde se vayan guardando las fotos, porque actualmente me las sube sueltas en la raíz del servidor y me queda muy desorganizado.
2. El mail me llega bien con los datos NOMBRE, EMAIL, FECHA DE NACIEMIENTO Y COMENTARIO, pero no puedo hacer que me llegue el nombre de la foto que fue subida.
3. Y por último si es posible que cuando se envíe el formulario o dé error, en vez de darme el mensaje: " "El archivo ha sido cargado correctamente" o "Ocurrió algún error al subir el fichero. No pudo guardarse", me envíe a dos HTML distintos, por ejemplo: envioOK.html y errorEnvio.html

Gracias por la ayuda que puedan darme!! necesito mucho esto, gracias!
Este es el código que estoy usando en el PHP:

Código :

<?
//tomo el valor de un elemento de tipo texto del formulario
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$fecha = $_POST["fecha"];
$fotoarchivo = $_POST["userfile"];
$comentario = $_POST["comentario"];


//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 500000))) {
    echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
    if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
   $cuerpo = "Un usuario subio una foto en el Blog de Los Nocheros\n";
    $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
    $cuerpo .= "E-mail: " . $HTTP_POST_VARS["email"] . "\n";
   $cuerpo .= "Fecha de Nacimiento: " . $HTTP_POST_VARS["fecha"] . "\n";
   $cuerpo .= "Foto subida: " . $HTTP_POST_VARS["userfile"] . "\n";
    $cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n";

    //mando el correo...
    mail("[email protected]","Nueva foto subida por usuario",$cuerpo); 
       echo "El archivo ha sido cargado correctamente.";
    }else{
       echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>


Este es mi formulario en HTML:

Código :

<form action="subir.php" method="post" enctype="multipart/form-data" name="form1">
  <table width="35%" border="0" cellspacing="5" cellpadding="0">
    
    <tr>
      <td valign="top"><input name="userfile" type="file" id="userfile"></td>
    </tr>
    <tr>
      <td valign="top">&nbsp;</td>
    </tr>
    <tr>
      <td valign="top">&nbsp;</td>
    </tr>
    <tr>
      <td width="55%" valign="top"><label>
        <input name="nombre" type="text" id="nombre" value="Tu nombre" size="30">
      </label></td>
    </tr>
    <tr>
      <td valign="top"><label>
        <input name="email" type="text" id="email" value="E-mail" size="30">
      </label></td>
    </tr>
    <tr>
      <td valign="top"><input name="fecha" type="text" id="fecha" value="Fecha de nacimiento" size="30"></td>
    </tr>
    <tr>
      <td valign="top"><textarea name="comentario" cols="45" rows="10" id="comentario">Descripción o comentario de la foto</textarea></td>
    </tr>
    
    <tr>
      <td valign="top"><label>
        <input type="submit" name="Submit" value="          Enviar todo          ">
      </label></td>
    </tr>
  </table>
</form>

Por galko

27 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2009 03:55 pm
debes modificar tu codigo asi y aqui

escribió:


if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], 'aqui/va/la/carpetaque/quieras/'. $nombre_archivo )){

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 27 Feb 2009 06:40 pm
Siii buenísimo!!! andaaa!! muchas gracias jpcw
Todavía me faltan solucionar los puntos 2 y 3, si me pudieras ayudar con eso también, te lo agradecería mucho!!

Por galko

27 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2009 08:42 pm

Código PHP :

    mail("[email protected]","Nueva foto subida por usuario",$cuerpo); 
       header('location: TodoOK.html');
    }else{
       header('location: ElServidorHaMuertoDeSifilis.html');
    }




pal punto 3

el segundo no lo comprendo seria solo que en el msg agregaras el $nombre_archivo y yya! creo U_U

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 03 Mar 2009 02:40 pm
Gracias de nuevo!!! todo lo que me dijiste me ayudó!!
Espero que me puedas ayudar una vez más, ya probé de varias maneras y todavía no puedo hacer que me llegue a mi mail el nombre de la foto que sube el usuario. Según el código PHP que posteé arriba me llega un mail de esta manera.

escribió:

Un usuario subio una foto en el Blog de Los Nocheros
Nombre: juan perez
E-mail: [email protected]
Fecha de Nacimiento: 5/12/80
Foto subida:
Comentarios: Un coment de la foto que subió.


El campo "Foto subida" me llega en blanco....
por qué? :?

Por galko

27 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Mar 2009 05:21 am

galko escribió:

El campo "Foto subida" me llega en blanco....
por qué? :?


seguramente porque la variable que le estas colocando esta en blanco..... mi bien :meditar:

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 04 Mar 2009 09:36 pm
creo q esto te va a servir de mucho a ti y a los demas saludos

http://www.codigolandia.com/art-Mail+Con+Adjunto+-+Cualquier+Archivo-php-60.tc

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 18 Nov 2009 06:15 am

jpcw escribió:

galko escribió:

El campo "Foto subida" me llega en blanco....
por qué? :?


seguramente porque la variable que le estas colocando esta en blanco..... mi bien :meditar:


debes pasar de esta forma el nombre del archivo a la variable
$cuerpo .= "Foto subida: " . $HTTP_POST_FILES['userfile']['name'] . "\n";

Por Erbet

0 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.