我正在使用CodeIgniter开发一个表单。在此,其中一个字段是上传文件。我成功地遵循了一些关于CodeIgniter中文件上传的教程,但是,在我的工作中,$ _FILES总是空的,我看不出原因。我是这个框架中的新手。
观点:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$this->load->helper('form');
echo form_open_multipart($action); ?>
Área:
<select>
<option value="1">Teste 1</option>
<option value="2">Teste 2</option>
</select> <br>
Data de abertura: <input type="text" id="data_abertura" placeholder="tqv"> <br>
Prioridade:<br>
<input type="radio" name="prioridade" value="3">Alta<br>
<input type="radio" name="prioridade" value="2">Média<br>
<input type="radio" name="prioridade" value="1">Baixa<br>
Anexar arquivo: <input type="file" accept="image/*, text/*, .doc, .docx, .pdf" name="arquivo" id="arquivo"><br>
Descrição: <br><textarea rows="4" cols="50" id="descricao" name="descricao"></textarea><br>
<input type="submit" id="enviar" name="enviar" value="Enviar">
<?php echo form_close() ?>
</body>
</html>
控制器:
<?php class c_Formulario extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); } public function index() { $data['action'] = site_url('c_formulario/inserir_dados'); $this->load->view('v_formulario', $data); } public function inserir_dados() { $config['upload_path'] = './upload/'; $config['allowed_types'] = 'gif|jpg|png|doc|docx|pdf|txt'; $config['max_size'] = '100'; $this->load->library('upload'); $this->upload->initialize($config); var_dump($_FILES); foreach($_FILES as $field => $file) { //var_dump($_FILES); die(); // No problems with the file if($file['error'] == 0) { // So lets upload if ($this->upload->do_upload($field)) { $data = $this->upload->data(); echo $data['full_path']; } else { $errors = $this->upload->display_errors(); var_dump($errors); } } } $this->load->model('m_formulario', '', TRUE); $area = array('id' => null, 'nome' => $this->input->post('area', TRUE)); $data = array('id' => null, 'dataabert' => $this->input->post('data_abertura', TRUE)); $prioridade = array('id' => null, 'nome_prioridade' => $this->input->post('prioridade', TRUE)); $arquivo = array('id' => null, 'urlarquivo' => $this->input->post('arquivo', TRUE)); $descricao = array('id' => null, 'descricao' => $this->input->post('descricao', TRUE)); $dados = array ( 'area' => $area, 'data' => $data, 'prioridade' => $prioridade, 'arquivo' => $arquivo, 'descricao' => $descricao ); $this->m_formulario->inserir($dados); }
感谢任何帮助!
答案 0 :(得分:0)
在config / mimes.php文件中,您是否正确配置了所有扩展名mime类型(pdf,txt,...)?
如果缺少mime类型,你可以在google上找到正确的mime类型;)
答案 1 :(得分:0)
我不确切知道为什么,但改变了允许的类型我解决了这个问题。 $ config ['allowed_types'] ='*';我正在测试一些txt和png文件。好吧,现在好了。对不起这个坏问题。