CodeIgniter: Você não selecionou um arquivo para envio

Caso você estiver utilizando a biblioteca de upload do CodeIgniter e estiver se deparando com a seguinte mensagem de erro: Você não selecionou um arquivo para envio saiba que a solução é simples e encontra-se na própria documentação do CodeIgniter:

Note: By default the upload routine expects the file to come from a form field called userfile, and the form must be a "multipart type.

[html] <code><form method="post" action="some_action" enctype="multipart/form-data" /></code> [/html] If you would like to set your own field name simply pass its value to the do_upload function: [php] <code>$field_name = "some_field_name"; $this->upload->do_upload($field_name)</code> [/php]

Utilizar o multipart no formulário já sabemos, pois é de praxe. Mas algo curioso é que o nome do seu input no HTML tem que ser "userfile" se você trocar (caso tiver muitos) você precisa avisar isso ao CodeIgniter. Confira o exemplo:

[html] <input type="file" name="minha_foto" id="minha_foto" size="35" tabindex="<?php echo $t; $t++; ?>" /> [/html] No controller resposável pelo upload você faz o seguinte: [php] $this->upload->do_upload('minha_foto'); // E não: $this->upload->do_upload(); [/php] É isso!