我正在尝试使用Codeigniter创建一个联系表单,该表单将发送一封带有文件附件的电子邮件。现在,当发送电子邮件时,我得到的只是上传的文件的名称,而不是实际的附件。有人可以帮助我吗?
这是我正在使用的代码:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class sendmail_contact extends CI_Model {
function __construct()
{
parent::__construct();
}
function send()
{
$this->load->library('email');
$this->load->helper('date');
$now = time();
$contact_date = unix_to_human($now); // U.S. time, no seconds
$this->load->library('email');
$this->email->set_newline("rn");
$name = $this->input->post('name', TRUE);
$file = $this->input->post('file', TRUE);
$this->email->from($email);
$this->email->to('test@gmail.com');
$this->email->subject('Subject');
$this->email->message("Email" . $name . "rn" . $file);
$this->email->send();
}
首先,将附加的文件保存到存储中。
见 http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html
然后,在保存用户上传的文件后,获取该文件的名称和使用
$this->email->attach($name);
它会将文件附加到您要发送的电子邮件中。
$name
应该是文件的完整路径,您可以通过回显找到系统的根目录
echo $this->config->item('server_root');
你可以像这样构建它:
$this->config->item('server_root')."/path to needed folder/"
文件的路径将是:
$name = $this->config->item('server_root')."/path to needed folder/"."file´s name";
如果您需要构造相对路径,可以在此处咨询如何操作链接