FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
archivo en formulario php
Tengo un formulario en php que llega al usuario en mi página web. En este formulario hay un cuadro de texto donde el puede ingresar la dirección de un archivo en su disco duro. Todo el formulario es ingresado por mail con la funcion mail().
¿Es posible que en el mail cuando se remite el formulario venga adjunto el archivo que seleccionó el usuario en su pc?. ¿Como se hace eso? |
#2
|
||||
|
||||
Hola,
Vayamos por partes, como dijo Jack el destripador... Cita:
Cita:
Cita:
Cita:
La verdad. A bote pronto no me parece descabellado enviar mediante correo un formulario al usuario que le permitiera seleccionar un archivo de su disco duro y enviarlo al Servidor. En la página Web de PHP se detalla pormenorizadamente cómo trabajar con archivos "enviados" desde formularios en el artículo "PHP - Manejo de envío de archivos". Sin embargo, me huelo problemas con los Gestores de correo, y con algunos usuarios: personalmente, no recibo correo en formato HTML, por lo que nunca vería el formulario que me enviaras... así que, me parece, no estaría demás que el formulario de marras estuviera disponible en alguna URL, esto es, pudiera dirigirse allí al usuario para que enviara el archivo desde allí. No sé si te he ayudado en algo o no... |
#3
|
|||
|
|||
Bueno, entendí. La próxima vez no escribiré tan apurado y tal vez me entiendan mejor. En realidad encontré lo ue quería en internet. Les paso el código para el que necesite hacer lo mismo. Solo tienen que ajustarlo a sus necesidades. El asunto será "Mandar un formulario por mail con un archivo adjunto"
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Envio de correo con un archivo adjunto</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php if ($_SERVER['REQUEST_METHOD']=="POST"){ // we'll begin by assigning the To address and message subject // $to="nombredeldestinatario@correo.com"; $to=$_POST['acorreo']; //$subject="E-mail with attachment"; $subject=$_POST['asunto']; // get the sender's name and email address // we'll just plug them a variable to be used later $from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">"; // generate a random string to be used as the boundary marker $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; // store the file information to variables for easier access $tmp_name = $_FILES['filename']['tmp_name']; $type = $_FILES['filename']['type']; $name = $_FILES['filename']['name']; $size = $_FILES['filename']['size']; // here we'll hard code a text messge // again, in reality, you'll normally get this from the form submission // $message = "Here is your file: $name"; $message = $_POST['mensaje']; // if the upload succeded, the file will exist if (file_exists($tmp_name)){ // check to make sure that it is an uploaded file and not a system file if(is_uploaded_file($tmp_name)){ // open the file for a binary read $file = fopen($tmp_name,'rb'); // read the file content into a variable $data = fread($file,filesize($tmp_name)); // close the file fclose($file); // now we encode it and split it into acceptable length lines $data = chunk_split(base64_encode($data)); } // now we'll build the message headers $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\""; // next, we'll build the message body // note that we insert two dashes in front of the // MIME boundary when we use it $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // now we'll insert a boundary to indicate we're starting the attachment // we have to specify the content type, file name, and disposition as // an attachment, then add the file content and set another boundary to // indicate that the end of the file has been reached $message .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; // now we just send the message if (@mail($to, $subject, $message, $headers)) { echo "Correo enviado<br>"; echo "<a href='http://pio9.com/22php.htm'>http://pio9.com/22php.htm</a><br>"; } else echo "Fallo en el envío"; } } else { ?> <p><b><center>Envío de un correo con un archivo adjunto:</center></b></p> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data" name="form1"> <p>Nombre del que envia..... <input type="text" name="fromname" size="25"></p> <p>Correo del que envia....... <input type="text" name="fromemail" size="25"></p> <p>Correo del destinatario.... <input type="text" name="acorreo" size="25"></p> <p>Asunto............................ <input type="text" name="asunto" size="25"></p> <p>Mensaje: <textarea name="mensaje" cols="50" rows="5"></textarea></p> <p>Archivo a enviar: <input type="file" name="filename"></p> <p><input type="submit" name="Submit" value="Enviar"></p> </form> <?php } ?> </body> </html> |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Formulario | fevimo | PHP | 3 | 21-09-2006 20:30:32 |
pasar datos de un formulario vista a cualquier formulario | @-Soft | OOP | 2 | 28-09-2004 21:56:01 |
Copiar datos de archivo a formulario | wallesis | OOP | 2 | 27-09-2004 21:31:14 |
formulario MDI | joanajj | Varios | 5 | 24-07-2004 01:50:37 |
boton a formulario | pepelu1975 | OOP | 2 | 12-02-2004 13:15:51 |
|