2

これはコントローラーです:

public function category()
    {
        if($this->form_validation->run()==FALSE)
        {
            $this->load->view('admin/home');
        }
        else{
                $config['upload_path'] = 'uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '100';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';
                $this->load->library('upload', $config);
                $image_data=$_POST['file'];
            if ( ! $this->upload->do_upload())
            {
                // no file uploaded or failed upload
                $error = array('error' => $this->upload->display_errors());
                $this->load->view('admin/home', $error);
            }
            else
            {
                // success
                $data = array('upload_data' => $this->upload->data());
                $this->your_upload_model->add($title, $description, $data["file_name"]);

                $this->load->view('upload_success', $data);
            }
        }

    }

これはビューです:

<?php echo validation_errors();?>
        <?php echo form_open_multipart('login/category');?>
        <?php
        if(isset($error))
        {
            echo $error;
        }
        ?>
<table>
<tr>
        <td align=right>Logo:</td>

        <td><input type="file" name="file"></td>
        <td><input type="submit" value="submit"></td>

        </tr>

        </table> 

次の 2 つのエラーが発生します。

  1. メッセージ: 未定義のインデックス: ファイル
  2. アップロードするファイルが選択されていません。

テキストフィールド名は同じですが、私はform_open_multipart(). また、画像はアップロードされておらず、エラーは役に立ちません。

4

2 に答える 2

0

最初の質問には次のコードを使用します。

public function category()
{
 if (array_key_exists('submit', $_POST)) {
  ---------You can enter the remaining code here............
 }
}

そして2番目のものについて:

if ( ! $this->upload->do_upload("file"))
{
 -----------code here----------
}
于 2013-07-05T10:31:28.807 に答える
0

まず第一に、$_POST['file']動作しませんが、第二に、HTML フィールド名を で指定する必要がありますdo_upload():

if ( ! $this->upload->do_upload('file'))
{
...
}

また、$image_data=$_POST['file'];とにかく動作しないため、削除します。$this->upload->data()アップロードされたファイル データを取得する正しい方法を既に使用しています。

$this->upload->do_upload()フィールド名がないと機能しない理由はname="userfile"、パラメーターが指定されていない場合にフィールドを検索するためです。を使用してname="file"います。

于 2012-11-07T16:36:39.983 に答える