0

localhost で Codeigniter を使用して、uploads フォルダーにファイルを完全にアップロードできます。ただし、サーバーにアップロードしようとすると、このエラーが発生します。さまざまな種類のファイルを試しました。txt、.doc .xls .jpg など、これらはすべて localhost で問題ありません。私はMIMEファイルを調べました.image/jpegは、必要な他のすべてのファイルタイプ(「doc」=>「application/msword」など....)とともにjpeg用です。フォルダーのアクセス許可も確認しましたが、問題ありませんが、エラーのためにそこまで到達していないことは明らかです。

ファイルのアップロードが許可されない理由を誰か知っていますか。

    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 に答える