El tema es poder hacer una aplicación en la que un usuario elije un archivo de su ordenador y envía el mismo via mail con la función mail().
Lo que hago de entrada es subir una copia del archivo al servidor para después enviarlo via mail, pero no hay forma de subirlo. He hecho pruebas y una vez el archivo está en el servidor si que funciona.
El error que me da es: failed to open stream: Permission denied
Este es el código:
Código PHP:
<?
if ($HTTP_POST_VARS):
$uploadDir = '/archivos/';
$uploadFile = $uploadDir."nombre_archivo";
if (move_uploaded_file($_FILES['material']['tmp_name'], $uploadFile)){
echo ($uploadFile);
}
else {
echo ("No se ha podido subir\n");
}
function sendmsg($to, $subject, $text, $from, $file, $type) {
$content = fread(fopen($file,"r"),filesize($file));
$content = chunk_split(base64_encode($content));
$uid = strtoupper(md5(uniqid(time())));
$name = basename($file);
$header = "From: $from\nReply-To: $from\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=$uid\n";
$header .= "--$uid\n";
$header .= "Content-Type: text/plain\n";
$header .= "Content-Transfer-Encoding: 8bit\n\n";
$header .= "$text\n";
$header .= "--$uid\n";
$header .= "Content-Type: $type; name=\"$name\"\n";
$header .= "Content-Transfer-Encoding: base64\n";
$header .= "Content-Disposition: attachment;filename=\"$name\"\n\n";
$header .= "$content\n";
$header .= "--$uid--";
mail($to, $subject, "", $header);
return true;
}
sendmsg('mimail','hola','hola','from','archivos/nombre_archivo','text/plain');
else:
?>
<form name="Formulari" enctype="multipart/form-data" action="prova_adjunt5.php" method="post">
<input class="form" name="material" type="file" size="15">
<input class="form" type="submit" name="Submit" value="Introducir">
</form>
<?
endif;
?>