Curriculum attachment via e-mail in Codeigniter not working

Asked

Viewed 506 times

2

Good afternoon, I am using this code to receive some data from alleged candidates who subscribe to the site.

I would like the applicant to send the attached file.

Views are ok.. and I think the problem is in my controller code :

I receive all the data requested in the form. Everything ok, but the attachment does not come.

class Envio extends CI_Controller {

    function trabalheconosco()
    {   
        $this->load->library('email');


        $config['upload_path'] = './uploads/curriculum/';
  $config['allowed_types'] = 'gif|jpg|png|doc|docx|txt|pdf';
  $config['max_size'] = '100000';

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

        $info['nome'] = $this->input->post('nome');         
        $info['nomepai'] = $this->input->post('nomepai');       
        $info['nomemae'] = $this->input->post('nomemae');       
        $info['cpf'] = $this->input->post('cpf');           
        $info['rg'] = $this->input->post('rg');         
        $info['orgao'] = $this->input->post('orgao');       
        $info['data'] = $this->input->post('data');         
        $info['telefone'] = $this->input->post('telefone');     
        $info['cel'] = $this->input->post('cel');           
        $info['datanasc'] = $this->input->post('datanasc');     
        $info['naturalidade'] = $this->input->post('naturalidade'); 
        $info['estado'] = $this->input->post('estado');     
        $info['email'] = $this->input->post('email');       
        $info['anexo'] = $this->input->post('anexo');       

    $this->email->set_newline("\r\n");
    $this->email->clear();



  $this->upload->do_upload($this->input->post('anexo'));
  $upload_data = $this->upload->data();

  $this->email->attach($upload_data['full_path']);

        $this->email->from($info['email'], $info['nome']);
        $this->email->to('meuemail');
        $this->email->subject('Curriculum enviado por'.$info['nome']);
        $this->email->message
            (
                                        "Nome: " . $info['nome'] . "\n\n" .
                            "Nome do Pai: " . $info['nomepai'] . "\n\n" .
                            "Nome da Mãe: " . $info['nomemae'] . "\n\n" .
                            "CPF: " . $info['cpf'] . "\n\n" .
                            "RG: " . $info['rg'] . "\n\n" .
                            "Orgão Emissor: " . $info['orgao'] . "\n\n" .
                            "Data de expedição: " . $info['data'] . "\n\n" .
                            "Telefone: " . $info['telefone'] . "\n\n" .
                            "Celular: " . $info['cel'] . "\n\n" .
                            "Data de nascimento: " . $info['datanasc'] . "\n\n" .
                            "Naturalidade: " . $info['naturalidade'] . "\n\n" .
                            "Estado: " . $info['estado'] . "\n\n" .
                            "Anexo: " . $info['anexo'] . "\n\n".
                            "Email: " . $info['email'] . "\n" 
            );

             if ($this->email->send()) {
                     echo '     <script> 
                                alert("Obrigado por se candidatar! Seu curriculum será analizado, em breve retornaremos! Boa sorte!");
                                window.location.href = "http://meusite.com.br";
                                </script>'; 
             return true;
         } else {
             show_error($this->email->print_debugger());
         }
}

The view:

<div class="container" style="position: relative;">
    <div class="row">
            <form method="POST" action="<?php echo base_url("/index.php/envio/trabalheconosco");?>">
                      <fieldset class="form-group" >

                        <label for="nome">Nome completo:</label>
                        <input type="text" class="form-control" id="nome" name="nome" required>

                      </fieldset>   

                      <fieldset class="form-group">

                        <label for="nomepai">Nome do Pai:</label>
                        <input type="text" class="form-control" id="nomepai" name="nomepai" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="nomemae">Nome da Mãe:</label>
                        <input type="text" class="form-control" id="nomemae" name="nomemae" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="cpf">CPF:</label>
                        <input type="text" class="form-control" id="cpf" name="cpf" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="rg">RG:</label>
                        <input type="text" class="form-control" id="rg" name="rg" required>

                      </fieldset>

                      <fieldset class="form-group">                         

                        <label for="orgao">Orgão Emissor:</label>
                        <input type="text" class="form-control" id="orgao" name="orgao" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="data">Data de expedição:</label>
                        <input type="text" class="form-control" id="data" name="data" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="telefone">Telefone Fixo:</label>
                        <input type="text" class="form-control" id="telefone" name="telefone" placeholder="(DDD)XXXX-XXXX" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="cel">Celular:</label>
                        <input type="text" class="form-control" id="cel" name="cel" placeholder="(DDD)XXXXX-XXXX" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="datanasc">Data de nascimento:</label>
                        <input type="text" class="form-control" id="datanasc" name="datanasc" placeholder="XX/XX/XXXX" required>

                      </fieldset>

                      <fieldset class="form-group">

                        <label for="naturalidade">Naturalidade:</label>
                        <input type="text" class="form-control" id="naturalidade" name="naturalidade" placeholder="Estado/Cidade" required>

                      </fieldset>

                       <fieldset class="form-group">

                        <label for="estado">Estado:</label>
                        <input type="text" maxlength="2" class="form-control" id="estado" name="estado" placeholder="Ex:SP" required>

                      </fieldset>

                      <fieldset class="form-group">               
                        <label for="email">E-mail:</label>
                        <input type="email" class="form-control" id="email" name="email" placeholder="Ex: [email protected]" required>
                      </fieldset>

                      <fieldset class="form-group">
                        <label for="anexo">Anexo</label>
                        <input type="file" class="form-control-file" id="anexo" name="anexo">
                        <small class="text-muted">Não envie ficheiros e arquivos compactados.</small>
                      </fieldset>

                      <div class="row" align="center">
                      <button type="submit" class="btn btn-primary">Enviar</button>
                      </div>

                    </form>
  • Place the html form tbm.

  • @rray ok, is included now, please check

  • 1

    Missed entype in form enctype="multipart/form-data"

  • insert and nothing yet.. wouldn’t be something in my controller?

  • 1

    CI always considers that you are at the root of the project, change $config['upload_path'] = './uploads/curriculum/ for $config['upload_path'] = 'uploads/curriculum/ and make sure that at the root of the project there are these folders.

  • It worked now!!! Perfect Rray !

Show 1 more comment

2 answers

1


The form opening has to be Multipart type, so: <form method="POST" action="#" enctype="multipart/form-data">.

Also, on the controller, change the line: $this->upload->do_upload($this->input->post('anexo'));, for: $this->upload->do_upload('anexo');.

The upado file does not arrive via POST.

  • I had already tried with the same code in the line you spoke. I replaced by way of doubts and it did not work yet.. :(

  • Have you tried separating the library load from its startup? Example: $this->load->library('upload'); $this->upload->initialize($config);

  • Also try to see what possible error might be happening with the upload, this way: if (!$this->upload->do_upload('anexo')) { echo $this->upload->display_errors(); }

  • Simon, appeared this message: The upload path does not appear to be Valid.

  • This message says that the path you set to upload is not valid.

  • The rray gave a tip that solved, even so thank you!

Show 1 more comment

-1

Missed by enctype="Multipart/form-data" there in the form

  • I entered the enctype, and tested.. nothing yet.. would be something in my controller?

Browser other questions tagged

You are not signed in. Login or sign up in order to post.