Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/01/2005, 08:26
cherubene
 
Fecha de Ingreso: agosto-2004
Mensajes: 27
Antigüedad: 19 años, 8 meses
Puntos: 0
Hice algunos cambios y funciona perfectamente; lo que me falta es una vez enviado el archivo (que subió a la carpeta "probeta") poder borrarlo. No sé como usar unlink() ni donde ponerlo.

Este el el formulario:
<form action="subearchivos.php" method="post" enctype="multipart/form-data">
<b>Campo de tipo texto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
<strong>Tu nombre:</strong><br>
<INPUT NAME="nick" TYPE="text" id="nick" SIZE="35" MAXLENGTH="35">
<br>
<strong>Tu correo:</strong><br>
<INPUT NAME="tucorreo" TYPE="text" id="tucorreo" SIZE="35" MAXLENGTH="35">
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>

Y subo y mando el archivo con subearchivos.php:


<?
//subo el archivo
//datos del archivo
$directorio = "probeta/";
$fichero = $HTTP_POST_FILES['userfile']['name'];
$nombre_archivo = $directorio . $fichero;
$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 < 100000))) {
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)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}


?>
<?
//pasamos a enviar el correo
require "includes/class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir = "includes/";
$mail->Mailer = "smtp";
$mail->Host = "smtp.miservidor.com";
$mail->SMTPAuth = true;

$mail->Username = "[email protected]";
$mail->Password = "mipassword";
$mail->From = "[email protected]";
$mail->FromName = "Bolsa de Trabajo";

//Asignamos asunto y cuerpo del mensaje
$mail->Subject = "Curriculum Vitae";
$mail->Body = "El curriculum adjunto pertenece a: \n";
$mail->Body .= "Nombre: ". $nick . "\n";
$mail->Body .= "Direccion de correo: ". $tucorreo . "\n";
$mail->Timeout=120;

//Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
if ($archivo !="none") {
$mail->AddAttachment($nombre_archivo,$nombre_archivo);
}

//Indicamos cuales son las direcciones de destino del correo y enviamos
//el mensaje
$mail->AddAddress("[email protected]");
//se envia el mensaje, si no ha habido problemas la variable $success
//tendra el valor true
$exito = $mail->Send();

//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas
//como mucho para intentar enviar el mensaje, cada intento se hara 5 s
//segundos despues del anterior, para ello se usa la funcion sleep
$intentos=1;
while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}

//La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
//attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho
//valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
$exito=true;
}

if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br/>".$mail->ErrorInfo;
}
else
{
//Mostramos un mensaje indicando las direccion de
//destino y fichero adjunto enviado en el mensaje
$mensaje="<p>Has enviado un mensaje a Bolsa de Trabajo:<br/>";
$mensaje.=$valor." ";
if ($archivo !="none") {
$mensaje.="Con un archivo adjunto llamado ".$nombre_archivo;
}
$mensaje.="</p>";
echo $mensaje;
}

?>