将附件移动到文件夹并使用电子邮件附加它们

问题描述:

我有一个简单的页面,它通过phpmailer发送电子邮件消息和多个附件。 我在同时给多个附件附加到电子邮件信息来发送,并且还上传这些文件O服务器,对于其即时通讯使用以下循环:将附件移动到文件夹并使用电子邮件附加它们

$MyUploads = array(); 

foreach(array_keys($_FILES['attach']['name']) as $key) 
{ $Location="uploads/"; 

$name=$_FILES['attach']['name'][$key]; 
$filePath = $Location . $name; 
$source = $_FILES['attach']['tmp_name'][$key]; // location of PHP's temporary file for 
$tmp=$_FILES['attach']['tmp_name'][$key]; 

if($mail->AddAttachment($source, $name)) 
    {if(move_uploaded_file($tmp, $filePath)){ 
$MyUploads[] = $filePath;} 
else 
{$MyUploads[]=''; 
echo "not uploaded";} 
} 
} 

的问题是,当我使用的功能move_uploaded_file()将文件上传到服务器文件夹,但不会随附件一起发送。当我注释掉这个函数时,附件会被发送。

不知道,为什么这两个dnt一起工作。请任何身体帮助

+0

相关:从检索数据库图像和显示所有页面上(http://*.com/questions/10196929/retrieving-images-from-数据库与显示-全部内容在一个页面) – hakre 2012-05-18 22:27:27

这是发送附件的循环,并将它们移动到目标路径以供进一步使用。我希望任何其他人可以由此帮助:

$MyUploads = array(); 
$numFiles = count(array_filter($_FILES['attach']['name'])); 

for ($i = 0; $i < $numFiles; ++$i) { 
    $target_path = 'uploads/' . basename($_FILES['attach']['name'][$i]); 
    if(move_uploaded_file($_FILES['attach']['tmp_name'][$i], $target_path)) { 
     echo "the file ".basename($_FILES['attach']['name'][$i])." has been uploaded<br />"; 
     $MyUploads[] = $target_path; 
     echo $MyUploads; 
     $mail->AddAttachment($target_path); 
    } 
}