PHPMAILER多个附件?如何?

时间:2015-08-22 19:53:53

标签: php html phpmailer

我有一个简单的表格:



    <form>
    ....
    <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="allegato" type="file" multiple>
    ....
    </form>
&#13;
&#13;
&#13;

用PHPmailer构建的validete脚本php:

&#13;
&#13;
<?php session_start();

//Percorso dove raccoglieremo gli allegati
$percorso = "allegati";

//Raccolta dati form 
$marca = $_POST['marca'];
$modello = $_POST['modello'];
$immatricolazione = $_POST['immatricolazione'];
$carburante = $_POST['carburante'];
$cilindrata = $_POST['cilindrata'];
$nditarga = $_POST['nditarga'];

$infosinistro = $_POST['infosinistro'];

$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];

$datipers = $_POST['datipers'];
$newsletter = $_POST['newsletter']; 

//Upload dell'allegato
move_uploaded_file($_FILES['allegato']['tmp_name'], $percorso.$_FILES['allegato']['name']);

//Messaggio
$oggetto = "Nuova richiesta preventivo";
$messaggio = " Hai ricevuto i seguenti dati da $nome $cognome <br> Marca: $marca <br> Modello: $modello \r\n Immatricolazione: $immatricolazione \r\n Carburante: $carburante \r\n Cilindrata: $cilindrata \r\n N. di Targa: $nditarga \r\n Maggiori info sul Sinistro: $infosinistro \r\n\r\n Dati del cliente: $nome $cognome \r\n N. di telefono: $telefono \r\n Indirizzo e-mail: $email \r\n\r\n $datipers \r\n $newsletter \r\n";
//Inclusione della libreria
require_once("class.phpmailer.php");
//Creiamo un oggetto PHPMailer e ne settiamo le variabili
$mail = new PHPMailer();
$mail->From = "$email";
$mail->FromName = "$email";
$mail->AddAddress("antonio.junior98@libero.it");
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $messaggio;
$mail->AddAttachment($percorso.$_FILES['allegato']['name']);
//Inviamo l'email
if($mail->Send())
echo "Email inoltrata correttamente";

?>
&#13;
&#13;
&#13;

我的问题是多个附件。我不知道如何添加更多。 这是我工作的一个月,但我不能。你有什么解决方案吗?谢谢。

Antonio Jr.:)

2 个答案:

答案 0 :(得分:1)

更改

$mail->AddAttachment($percorso.$_FILES['allegato']['name']);

$mail->AddAttachment($percorso.$_FILES['allegato']['tmp_name']);

再次使用该方法和另一个文件,它会将它添加到附加的文件中!

修改

我意识到你的文件输入中有“多个”属性。

您希望附加所有这些文件。好的,我们必须知道,当你有“多个”属性时,文件将被存储在一个“怪异”的数组中。

第一个文件是$_FILES['inputname']['tmp_name'][0] 第二个文件是$_FILES['inputname']['tmp_name'][1]

等等。这就是你添加这些附件的方式。

如果您想获得多个上传文件的大小,请使用:

`$_FILES['inputname']['size'][0]` -> Size of the first file
`$_FILES['inputname']['size'][1]` -> Size of the second file

答案 1 :(得分:0)

尝试这个

^