Apertura allegato inviato con form creato su Altervista
Buonasera a tutti,
dopo molte prove sono riuscito a creare un form che fa l'upload di un .pdf e lo invia al destinatario (inserito nel form html);
l'allegato mi arriva come .pdf, ma Adobe Reader non lo legge:
qs. solo nel caso in cui utilizzo il sito Altervista,
mentre in locale funziona perfettamente.
E' molto probabile che qs. dipenda da qualche impostazione di Altervista:
qualcuno saprebbe aiutarmi?
Grazie in anticipo.:wink:
Si cero, ecco il codice del file invia.php. Grazie
Codice PHP:
<?php
function Invia()
{
$boundary="";
$destinatario="";
$data="";
ini_set(' memory_limit', -1);
ini_set('cgi.rfc2045_headers', 1);
ini_set('file_uploads', 'On');
ini_set('upload_max_filesize', '100G');
ini_set('mbstring.http_output_conv_mimetype','application/pdf');
ini_set ('AddType','application/octet-stream');
ini_set ('AddType', 'application/pdf');
$allegato_name = $_FILES['upload']['name'];
$allegato_type= $_FILES['upload']['type'];
$allegato_tmp= $_FILES['upload']['tmp_name'];
$oggetto="INVIO FATTURA $_POST[nome] $_POST[cognome]";
echo $allegato_type;
//read the attachment file contents into a string,
//encode it with MIME base64,
//and split it into smaller chunks
//Apro e leggo il file allegato
$file=@fopen($allegato_name,'rb'); // apro il file in lettura $miofile = fopen('leggimi.txt','r');
//$allegato_size=filesize($allegato_name);// memorizzo in una variabile la lunghezza del file $bytes=filesize('leggimi.txt');
$data=@fread($file, filesize($allegato_name));
fclose($file);
$data=chunk_split(base64_encode($data));
//define the body of the message.
ob_start(); //Turn on output buffering
$headers = ob_get_clean();
$boundary = md5(time());
$headers="From: <volirosa@gmail.com>\n";
$headers .="MIME-Version: 1.0";
$headers .= "--PHP-alt-$boundary\n";
$headers .= "Content-Type: application/pdf; name=\"$allegato_name\"\n";
$headers .= "Content-Transfer-Encoding: base64\n";
$headers .= "Content-Disposition: attachment\n\n";
$headers .="--PHP-mixed-$boundary\n";
$destinatario=@$_POST['email'];
if ((isset($destinatario))&($data<>null))
{$mail_sent=@mail($destinatario,$oggetto,$data,$headers);
echo $mail_sent ? "<p>Mail inviata con successo!</p>" : "Mail failed";
include "samtel.html";
}else{
echo "<p>errore</p>";
include "samtel.html";
}
}
?>