Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将附件移动到文件夹并通过电子邮件将其附加_Php_Upload_Attachment_Email Attachments - Fatal编程技术网

Php 将附件移动到文件夹并通过电子邮件将其附加

Php 将附件移动到文件夹并通过电子邮件将其附加,php,upload,attachment,email-attachments,Php,Upload,Attachment,Email Attachments,我有一个简单的页面,通过phpmailer发送电子邮件和多个附件。 我必须将多个附件附加到要发送的电子邮件,并同时将这些文件上载到服务器,为此我使用以下循环: $MyUploads = array(); foreach(array_keys($_FILES['attach']['name']) as $key) { $Location="uploads/"; $name=$_FILES['attach']['name'][$key]; $filePath = $Location .

我有一个简单的页面,通过phpmailer发送电子邮件和多个附件。 我必须将多个附件附加到要发送的电子邮件,并同时将这些文件上载到服务器,为此我使用以下循环:

 $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_Upload_file功能时,文件会上载到服务器文件夹,但不会与附件一起发送。当我注释掉这个函数时,附件就被发送了


可以;我不知道这两个dnt为什么一起工作。请提供任何正文帮助

以下是发送附件并将其移动到目标路径的循环,以供进一步使用。我希望其他任何人都能从中得到帮助:

$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);
    }
}
相关的: