我正在尝试使用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("\r\n");
$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 . "\r\n" . $file);
$this->email->send();
}
答案 0 :(得分:1)
首先,将附件保存到存储中。
请参阅http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html
然后,在保存用户上传的文件后,获取该文件的名称 并使用
$this->email->attach($name);
它会将文件附加到您要发送的电子邮件中。
答案 1 :(得分:1)
$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";
如果你需要构建一个相对路径,你可以在这里咨询如何做到link