1

CIフレームワークと一緒にいくつかのファイルをアップロードしようとしていました。私が欲しいのは、ファイルを別のフォルダーにアップロードすることです。そのため、ファイル入力要素の名前を確認し、フィルパスを設定してみました。

これが私の問題について明確なアイデアを得るためのコードです。

$config['allowed_types'] = 'jpg|doc|pdf|docx';
        //$config['max_size']   = '100';
        //$config['max_width']  = '1024';
        //$config['max_height']  = '768';
            if($this->input->post('bankbook_attachment')){
                echo 'bank'.$this->input->post('bankbook_attachment');
                $config['upload_path'] = './uploads/bank/';

                $fillselect='bankbook_attachment';
                $this->load->library('upload', $config);

                if ( ! $this->upload->do_upload($fillselect))
                {
                        $error = array('error' => $this->upload->display_errors());

                        echo 'error'.print_r($error);
                }
                else
                {
                     //   $data = array('upload_data' => $this->upload->data());
                       // print_r($data);
                        $datame=$this->upload->data();
                        $fillnamebank= $datame['file_name'];
                        echo 'fillname is'.$fillnamebank;
                      // $this->load->view('upload_success', $data);
                }


            }
            if($this->input->post('emp_nic_attachment')){
                $config['upload_path'] = './uploads/nic/';
                $fillselect='emp_nic_attachment';
                $this->load->library('upload', $config);

                if ( ! $this->upload->do_upload($fillselect))
                {
                        $error = array('error' => $this->upload->display_errors());

                        echo 'error'.print_r($error);
                }
                else
                {
                     //   $data = array('upload_data' => $this->upload->data());
                       // print_r($data);
                        $datame=$this->upload->data();
                        $fillnamenic= $datame['file_name'];
                        echo 'fillname is'.$fillnamenic;
                      // $this->load->view('upload_success', $data);
                }
            }

しかし、コードを実行すると、if 条件が検証されず、そのままになっていることに気付きました。CI の例では、post 配列を使用して名前を取得するのではなく、直接ハードコードを使用していることに気付きました。しかし、これは私のアプリケーションでは不可能です。

これを解決する方法。私は単に問題がこの行にあると思います$this->input->post('emp_nic_attachment')

4

2 に答える 2

1

のアップロード ディレクトリを更新しているので$config、「フィル名」を確認する必要はないと思います。以下のコードで十分です

$config['upload_path'] = './uploads/bank/';
$this->load->library('upload', $config);

if ( ! $this->upload->do_upload('bankbook_attachment'))
{
    $error = array('error' => $this->upload->display_errors());
    echo 'error'.print_r($error);
}
else
{
    $datame=$this->upload->data();
    $fillnamebank= $datame['file_name'];
    echo 'fillname is'.$fillnamebank;
}

$config['upload_path'] = './uploads/nic/';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('emp_nic_attachment'))
{
    $error = array('error' => $this->upload->display_errors());
    echo 'error'.print_r($error);
}
else
{
    $datame=$this->upload->data();
    $fillnamenic= $datame['file_name'];
    echo 'fillname is'.$fillnamenic;
}
于 2012-12-24T06:24:55.163 に答える
0

数時間かけてフォーラムの助けを借りた後、私は答えを見つけることができました。シンプルで重要な概念は、複数のアップロードを行うたびにアップロードライブラリと構成ファイルをロードする必要があるということです。

$config['upload_path'] = './uploads/bank/';
                $config['allowed_types'] = 'doc|docx|pdf|jpg';
        $fillselect='bankbook_attachment';
        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload($fillselect))
        {
            $error = array('error' => $this->upload->display_errors());

            echo 'error'.print_r($error);
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
                       // print_r($data);
                        $datame=$this->upload->data();
                        $fillnamebank= $datame['file_name'];
            echo 'fillname is'.$fillnamebank;
                      // $this->load->view('upload_success', $data);
        }

                $config['upload_path'] = './uploads/nic/';
                $config['allowed_types'] = 'doc|docx|pdf|jpg';
        $fillselect2='emp_nic_attachment';
        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload($fillselect2))
        {
            $error = array('error' => $this->upload->display_errors());

            echo 'error'.print_r($error);
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
                       // print_r($data);
                        $datame=$this->upload->data();
                        $fillnamenic= $datame['file_name'];
            echo 'fillname is'.$fillnamenic;
                      // $this->load->view('upload_success', $data);
        }

私がしたもう1つの間違いは、コンストラクターでuplodライブラリーを呼び出すことでした。それはuselssです。

于 2012-12-24T11:55:58.037 に答える