Foros del Web » Programando para Internet » PHP »

Gran Problema Con Formulario Adjuntar Archivos

Estas en el tema de Gran Problema Con Formulario Adjuntar Archivos en el foro de PHP en Foros del Web. Yo en PHP soy muy nuevo, el problema es que ya no se como hacerlo y ocupo una manota. Este es el codigo. El Html. ...
  #1 (permalink)  
Antiguo 28/06/2011, 11:24
 
Fecha de Ingreso: junio-2011
Ubicación: San Jose, Costa Rica
Mensajes: 52
Antigüedad: 12 años, 9 meses
Puntos: 1
Gran Problema Con Formulario Adjuntar Archivos

Yo en PHP soy muy nuevo, el problema es que ya no se como hacerlo y ocupo una manota. Este es el codigo.
El Html.

<form id="formElem" name="formElem" action="enviar.php" method="post" enctype="multipart/form-data">

name="form">
<fieldset class="step">
<legend>Datos Personales</legend>

<p>
<label for="name">*Primer Nombre</label>
<input type="text" name="Nombre" id="Nombre" value="" />

</p>
<p>
<label for="SegundoNombre">Segundo Nombre:</label>
<input type="text" name="SegundoNombre" id="SegundoNombre" value="" />
</p>
<p>
<label for="PrimerApellido">* Primer Apellido: </label>
<input type="text" name="PrimerApellido" id="PrimerApellido" value="" />
</p>


<p>
<label for="SegundoApellido">Segundo Apellido: </label>
<input type="text" name="SegundoApellido" id="SegundoApellido" value="" />
</p>

<p>
<label for="NúmerodeIdentificación:">* Número de Identificación:</label>
<input type="text" name="NúmerodeIdentificación" id="NúmerodeIdentificación" value="" />
</p>
<p>
<label for="archivo">Subir Archivo* <br /> (Solamente PDF) <br /> </label>
<input name="archivo" type="file" id="archivo" /> <br>
</fieldset>
<fieldset class="step">

<legend>Enviar</legend>
<p class="submit"><input name="button2" type="submit" id="button2" value="Enviar" /></p></fieldset></form></div>
Y EL PHP:


<?php
//define the receiver of the email
$to = '[email protected]';
//define the subject of the email
$subject = 'Test email with attachment';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: [email protected]\r\nReply-To: [email protected]";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
//read the atachment file contents into a string,
//encode it with MIME base64,
//and split it into smaller chunks
$attachment = chunk_split(base64_encode(file_get_contents('attac hment.zip')));
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!!
This is simple text email message.

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/zip; name="attachment.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
$file = ob_get_clean();
$Nombre = ob_get_clean();
$SegundoNombre = ob_get_clean();
$PrimerApellido = ob_get_clean();
$SegundoApellido = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $file, $Nombre, $SegundoNombre,
$PrimerApellido,
$SegundoApellido, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>


Pero al final de enviarlo me tira el siguiente error:

Warning: file_get_contents(attachment.zip) [function.file-get-contents]: failed to open stream: No such file or directory in /var/www/web101/web/NuevaCarpeta/enviar.php on line 16
Mail failed
  #2 (permalink)  
Antiguo 28/06/2011, 11:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Gran Problema Con Formulario Adjuntar Archivos

Lo único que te dice el error es que el archivo que intentas abrir no existe, procura corregir la ruta, no más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/06/2011, 11:44
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Gran Problema Con Formulario Adjuntar Archivos

Warning: file_get_contents(attachment.zip) [function.file-get-contents]: failed to open stream: No such file or directory in /var/www/web101/web/NuevaCarpeta/enviar.php on line 16

El archivo que intentas adjuntar no existe.
Utiliza PHPMailer y olvídate de este código.
Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: 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 03:24.