将表单文件附加到电子邮件,Codeigniter

时间:2014-06-10 07:56:04

标签: php codeigniter email file-upload

我需要从用户那里获取文件并将其附加到邮件而不将其保存在服务器上。 Codeigniter中是否可以将上传的文件存储在变量中,然后将其附加到Codeigniter电子邮件库的电子邮件中?怎么实现呢? 在CI中,我只找到将上传文件存储在硬盘驱动器上的类,而不是变量。

2 个答案:

答案 0 :(得分:4)

首先,您必须将文件上传到服务器目录,然后将文件的名称和路径传递给电子邮件附加行,即

    **$this->email->attach('/path/to/file.ext');**

请参阅以下代码了解上传课程和电子邮件库。

    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

    }
    else
    {
        $data = array('upload_data' => $this->upload->data());

    $this->load->library('email');

    $this->email->from('your@example.com', 'Your Name');
    $this->email->to('someone@example.com');
    $this->email->cc('another@another-example.com');
    $this->email->bcc('them@their-example.com');

    $this->email->subject('Email Test');
    $this->email->attach('/path/to/file.ext');
    $this->email->message('Testing the email class.');

    $this->email->send();

    }

答案 1 :(得分:-1)

试试这个

https://www.codeigniter.com/user_guide/libraries/email.html

效果很好。我在最近的项目中试过这个