Fazer upload de arquivo no codeigniter
Estou tentando fazer um form com upload de arquivos mas não está funcionando. Ele não carrega os arquivos e nem indica os erros.
Controler: Noticias.php
public function CriarNoticia () {
//carrega a blibioteca
$this->load->library('upload');
//verifica nível de acesso
if ($this->session->userdata('nivel') < 4) {
//redireciona página
header("Location: ".base_url()."Principal");
}
//zera variáveis
$erro = '';
//cria objeto
$noticia = new Noticia;
//valida campos do form
$this->form_validation->set_rules('titulo','Título','required');
$this->form_validation->set_rules('data','Data','required');
$this->form_validation->set_rules('texto','Texto','required');
$this->form_validation->set_rules('resumo','Resumo','required');
$this->form_validation->set_rules('categoria','Categoria','required');
//verifica validação
if ($this->form_validation->run() == TRUE){
//atribui valor do form para variável
$noticia->__set('titulo', $this->input->post('titulo'));
$noticia->__set('data', $this->input->post('data'));
$noticia->__set('texto', $this->input->post('texto'));
$noticia->__set('resumo', $this->input->post('resumo'));
$noticia->__set('categoria', $this->input->post('categoria'));
//configura arquivos
$config['upload_path'] = './galeria/imagensdestaque';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_width'] = '500';
$config['overwrite'] = 'true';
//inicializa as configurações
$this->upload->initialize($config);
// faz o upload
if ( ! $this->upload->do_upload('imagem')) {
// em caso de erro retorna os mesmos para uma variável
$erro = array('error' => $this->upload->display_errors());
} else {
//se correu tudo bem, recuperamos os dados do arquivo
$imagem['dadosArquivo'] = $this->upload->data();
// definimos o caminho original do arquivo
$arquivoPath = 'imagensdestaque/'.$imagem['dadosArquivo']['file_name'];
// passando para o array
$imagem['urlArquivo'] = base_url($arquivoPath);
}
$noticia->__set('imagem', $imagem['urlArquivo']);
//cria objeto
$crud = new Crud2;
//prepara dados
$resultado = array('Titulo' => $noticia->titulo, 'Data' => $noticia->data, 'Texto' => $noticia->texto, 'Resumo' => $noticia->resumo, 'Categoria' => $noticia->categoria, 'Imagem' => $noticia->imagem);
//salva dados
$crud->Inserir('noticias', $resultado);
} else {
//indica os erros
$erro = validation_errors('<p class="vermelho">','</p>');
}
//coloca dados em array para transmitir a vista
$dados = array (
'menu' => 'padroes/menu',
'pagina' => 'InserirNoticia',
'rodape' => 'padroes/Rodape',
'erro' => $erro
);
//carrega vista
$this->load->view('Padroes/PaginaPadrao',$dados);
}
View: InserirNoticia.php
<div class="container">
<div class="row">
<div class="col-sm-10">
<H2>Cadastrar Notícia</H2>
<fieldset>
<p><?php echo form_open('Noticias/CriarNoticia'); ?></p>
<label>Título:</label>
<p><?php echo form_input(array('name'=>'titulo','id'=>'titulo'),set_value('titulo')); ?></p>
<label>Data:</label>
<p><?php echo form_input(array('type'=>'date', 'name'=>'data','id'=>'data'),set_value('data')); ?></p>
<label>Texto: </label>
<p><?php echo form_textarea(array('name'=>'texto','id'=>'texto'),set_value('texto')); ?></p>
<label>Resumo: </label>
<p><?php echo form_input(array('name'=>'resumo','id'=>'resumo'),set_value('resumo')); ?></p>
<label>Imagem de Destaque: </label>
<p><?php echo form_input(array('type'=>'file', 'name'=>'imagem','id'=>'imagem'),set_value('imagem')); ?></p>
<label>Categoria: </label>
<p><?php echo form_dropdown(array('name'=>'categoria','id'=>'categoria'), array('noticia' => "Notícia"), set_value('categoria')); ?></p>
<label> </label>
<p><?php echo form_submit(array('name'=>'cadastrar'),"Cadastrar"); ?></p>
</form>
<label> </label>
</fieldset>
<?php echo $erro; ?>
</div>
</div>
</div>Discussão (16)
Carregando comentários...