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"> </td> </tr> <tr> <td valign="top"> </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>
