Foros del Web » Programando para Internet » PHP »

Enviar archivo mediante formulario

Estas en el tema de Enviar archivo mediante formulario en el foro de PHP en Foros del Web. Tengo un formulario escrito en html / php y se pudieran enviar archivos en además de texto y que llegara a mi correo. Yo tengo ...
  #1 (permalink)  
Antiguo 10/09/2011, 09:40
 
Fecha de Ingreso: abril-2011
Mensajes: 169
Antigüedad: 13 años
Puntos: 4
Exclamación Enviar archivo mediante formulario

Tengo un formulario escrito en html / php y se pudieran enviar archivos en además de texto y que llegara a mi correo.

Yo tengo lo siguiente (por ejemplo):

Código PHP:
<? 
if (!$HTTP_POST_VARS){ 
?> <form action="enviar.php" method=post name="enviar.php" id="enviar.php">

Nombre: <input type="text" name="nombre" id="nombre" />

Su correo: <input type="text" name="correo" id="correo" />

<input type="submit" value="Enviar" />

</form>

<? 

}else{

$cuerpo "Formulario enviado desde www.ejemplo.com\n"

$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n"

$cuerpo .= "Email: " $HTTP_POST_VARS["correo"] . "\n"



mail("[email protected]","Formulario recibido",$cuerpo); 



echo 
"¡Correo enviado!"



?>
Pues eso, ¿cómo envío también una imagen, por ejemplo?
__________________
MiniMonigotes.com | Juegos flash online gratis - ¡Entra ya!
  #2 (permalink)  
Antiguo 10/09/2011, 10:23
 
Fecha de Ingreso: agosto-2011
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 8
Respuesta: Enviar archivo mediante formulario

Primero para enviar archivos, el formulario deberá tener una codificación tipo: multipart/form-data

Así quedaría:

Código HTML:
Ver original
  1. <form action="enviar.php" method=post enctype="multipart/form-data" name="enviar.php" id="enviar.php">
  2.  
  3. Nombre: <input type="text" name="nombre" id="nombre" />
  4.  
  5. Su correo: <input type="text" name="correo" id="correo" />
  6. Archivo:
  7. <input type="file" name="file" id="file">
  8. <input type="submit" value="Enviar" />
  9.  
  10. </form>

Segundo, te recomiendo guardar las imágenes o archivos que sean subidos a una carpeta de tu web, y así solo enviarte la url completa del archivo.

Ejemplo:
Si tu carpeta se encuentra en la siguiente dirección… www.miweb.com/files/images/
Entonces, antes de enviarte el mensaje a tu email, también envías la url del archivo.

PD: Si no sabes subir archivos a una carpeta, ahí te paso un código básico.
Código PHP:
Ver original
  1. <?php
  2. $tamano = $_FILES["file"]['size'];
  3. $archivo = $_FILES["file"]['name'];
  4. if ($archivo != "") {
  5.     if($tamano>2097152){//Tamaño maximo en bytes
  6.         echo 'Has sobrepaso el peso máximo';
  7.     }
  8.     //Nombre de la imagen                      
  9.     $ran = substr(md5(uniqid(rand())),9,9);
  10.     $name_final=$ran.$archivo;
  11.     //Carpeta donde se guardaran los archivos                  
  12.     $carpeta = "www.miweb.com/carpeta/carpeta/".$name_final;
  13.                        
  14.     if (!copy($_FILES["file"]["tmp_name"],$destino)) {
  15.         echo 'No se ha copiado el archivo';
  16.     }
  17. }else{
  18.     echo 'El archivo esta vacío';
  19. }
  20. ?>

y la url de tu archivo, estaria guardada en la variable $carpeta.
__________________
Publicityextrim - http://www.publicityextrim.com
Email: [email protected]
..Lo que tu empresa necesita..

Etiquetas: correo, html, formulario
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 12:11.