0

我正在使用 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);
}

感谢任何帮助!

4

2 回答 2

0

您的 config/mimes.php 文件中是否正确配置了所有扩展 mime 类型(pdf、txt、...)?

如果缺少 mime 类型,您可以很容易地在 google 上找到正确的类型;)

于 2013-08-08T22:36:00.230 回答
0

我不知道确切原因,但更改允许的类型我解决了这个问题。$config['allowed_types'] = '*'; 我正在使用一些 txt 和 png 文件进行测试。嗯,现在好了。对不起这个不好的问题。

于 2013-08-12T12:30:40.377 回答