如何在 CodeIgniter 中添加多个图像作为附件而不是 Zip 文件夹

how to add multiple images as attachment in CodeIgniter instead of Zip folder

嘿,

我已经创建了导出功能,它可以获取包含一个 zip 文件夹的所有用户数据和图像,并将其邮寄到相应的电子邮件 ID。

邮件功能正常,但我希望将报告中的图片导出为电子邮件中的附件,而不是 zip 文件

听说是我的控制器report.php

fclose($handle);
 if (!file_exists(REPORT_CSV_PATH)) {
  mkdir(REPORT_CSV_PATH, 0755,true);
  }
 $new_file_path = REPORT_CSV_PATH.time()."visit_entries.csv";
 copy($file_path,$new_file_path);
 unlink("assets/upload/site_visit_pictures.zip");
 $z = new ZipArchive();
 $z->open("assets/upload/site_visit_pictures.zip", ZIPARCHIVE::CREATE);
  $this->folderToZip("assets/upload/mail_entries_images/", $z);
 $z->close();



 // Send mail
  $email_template = get_email_template("Mark Water Plumbing - Visit Entries");
  $email_subject = $email_template->email_subject;
  $email_from = $email_template->email_from;
  $email_body = $email_template->email_body;
  $email_body = str_replace("{LINK}", base_url()."content/download_sitevisit_pictures", $email_body);
  $this->load->library('email');
  $this->email->from($email_from, $this->config->item('site_name'));
  $this->email->to($this->input->post('email'));
  $this->email->subject($this->config->item('site_name') . " : " . $email_subject);
  $this->email->message($email_body);   
  $this->email->attach($new_file_path); 
  if($this->email->send())
  {
    $dir ="assets/upload/mail_entries_images/";  
    $this->rrmdir($dir);
    $this->session->set_userdata("toast_message", "Email with visit entries data sent succesfully.");
    redirect("admin/reports/");
  }
  else
  {
    $dir ="assets/upload/mail_entries_images/";  
    $this->rrmdir($dir);
    $this->session->set_userdata("toast_error_message", "Error in sending mail.");
    redirect("admin/reports/");
  }


}

function rrmdir($dir) {
  if (is_dir($dir)) {
    $objects = scandir($dir);
    foreach ($objects as $object) {
      if ($object != "." && $object != "..") {
        if (filetype($dir."/".$object) == "dir") 
         $this->rrmdir($dir."/".$object); 
       else unlink   ($dir."/".$object);
     }
   }
   reset($objects);
   rmdir($dir);
 }
}

public  function folderToZip($folder, &$zipFile, $subfolder = null) {

    // we check if $folder has a slash at its end, if not, we append one
  $folder .= end(str_split($folder)) == "/" ? "" : "/";
  $subfolder .= end(str_split($subfolder)) == "/" ? "" : "/";
    // we start by going through all files in $folder
  $handle = opendir($folder);
  while ($f = readdir($handle)) {
    if ($f != "." && $f != "..") {
      if (is_file($folder . $f)) {
       // if we find a file, store it
       // if we have a subfolder, store it there
        if ($subfolder != null)
          $zipFile->addFile($folder . $f, $subfolder . $f);
        else
          $zipFile->addFile($folder . $f);
      } elseif (is_dir($folder . $f)) {
                // if we find a folder, create a folder in the zip 
        $zipFile->addEmptyDir($f);
                // and call the function again
        $this->folderToZip($folder . $f, $zipFile, $f);
      }
    }
  }

现在它正在创建 link 包含所有图像的 zip,但现在我希望在发送邮件时将所有图像作为附件

请帮我完成它。

将所有文件放在一个数组中并附加在电子邮件中$this->email->attach();

$path='path/to/folder/';
$file_names=array('myfile.csv','myfile.pdf','myfile.img');
foreach($file_names as $file_name)
{   
 $this->email->attach($path.$file_name);  
}