0

我可以使用本地主机上的 Codeigniter 完美地将文件上传到上传文件夹。但是,当我尝试在服务器上上传时出现此错误。我尝试过不同类型的文件。txt、.doc .xls .jpg 等,在 localhost 上都可以。我查看了 MIME 文件和图像/jpeg 以及我需要的所有其他文件类型('doc' =>'application/msword'等......)。我也检查了文件夹权限,它们没问题,但很明显,由于错误,我什至没有走那么远。

有谁知道为什么它不允许我上传我的文件。

    string(57) "The filetype you are attempting to upload is not allowed." array(2) 
    { ["testfile"]=> array(5) 
    { ["name"]=> string(7) "123.jpg" ["type"]=> string(10) "image/jpeg" 
    ["tmp_name"]=> string(14) "/tmp/phpVYtNNs" ["error"]=> int(0) ["size"]=> int(20921) }
    ["quotefile"]=> array(5) 
    { ["name"]=> string(7) "123.jpg" ["type"]=> string(10) "image/jpeg" 
    ["tmp_name"]=> string(14) "/tmp/phpIsvQ7x" ["error"]=> int(0) ["size"]=> int(20921) } } 

控制器:

    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png|txt|pdf|xls|csv|doc';
    $config['max_size'] = '1000000';
    $config['max_width']  = '100024';
    $config['max_height']  = '76008';
    $this->load->library('upload', $config);

模型:

    if ( ! $this->upload->do_upload('testfile'))
    {
        var_dump($this->upload->display_errors('', ''));
                    var_dump($_FILES);
        //$error = array('error' => $this->upload->display_errors());
        //echo '<pre>'; print_r($error); echo '</pre>';
        //$this->load->view('upload_form', $error);     
    }
    else
    {
        $data = array('upload_data' => $this->upload->data('testfile'));
        $this->load->view('upload_success', $data);         
    }
    $upload_data = $this->upload->data('testfile');


    if ( ! $this->upload->do_upload('quotefile'))
    {

        $error = array('error' => $this->upload->display_errors());
        echo '<pre>'; print_r($error); echo '</pre>';
        //$this->load->view('upload_form', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data('quotefile'));
        $this->load->view('upload_success', $data);
    }
4

2 回答 2

0

如果您使用的是 2.1.0 版本,则上传库中存在错误。参考下面的链接,这里解释的很清楚。

在 Codeigniter 中上传 - 不允许您尝试上传的文件类型

于 2013-01-24T12:50:35.497 回答
0

你可以在那里使用我的代码

public function do_tambah_rule()
    {

            $this->load->library('upload');
            $nmfile = "file_".time(); //nama file saya beri nama langsung dan diikuti fungsi time
            $config['upload_path'] = './uploads/'; //path folder
            $config['allowed_types'] = 'pdf|docx'; //type yang dapat diakses bisa anda sesuaikan
            $config['max_size'] = '9072'; //maksimum besar file 3M
            $config['file_name'] = $nmfile; //nama yang terupload nantinya

            $this->upload->initialize($config);

            if($_FILES['file_pembelajaran']['name'] != NULL)
            {
                if ($this->upload->do_upload('file_pembelajaran'))
                {
                    $gbr = $this->upload->data();
                    $data = array(
                      'nama_file' =>$gbr['file_name'],
                      'type_file' =>$gbr['file_type'],
                      'gejala_1' => $this->input->post('gejala_1'),
                        'gejala_2' => $this->input->post('gejala_2'),
                        'gejala_3' => $this->input->post('gejala_3'),
                        'gejala_4' => $this->input->post('gejala_4'),
                        'gejala_5' => $this->input->post('gejala_5'),
                        'id_jurusan'=>$this->session->userdata('id_jurusan'),
                        'id_artikel' => $this->input->post('artikel'),
                        'username' => $this->session->userdata('username'),
                        'hasil' => $this->input->post('hasil')
                    );

                    $this->guru_mod->insert_data('forward_changing',$data); //akses model untuk menyimpan ke database

                    $config2['source_image'] = $this->upload->upload_path.$this->upload->file_name;


                }
            } elseif ($_FILES['file_pembelajaran']['name'] == NULL) {

                $this->session->set_flashdata('pesan', 'File pembelajaran belum di sertakan');
            }

        redirect('guru/daftar_rule','refresh');

    }
于 2018-03-26T12:05:09.597 回答