0

アップロードしたばかりのファイルの名前を取得し、それを index() 関数に渡してデータベースに挿入する方法を知っている人はいますか?

これは codeigniter で書かれており、これが私のフォーム コントローラーのコードです。

ありがとう。

public function index() {

    $this->load->library('form_validation');

    $this->form_validation->set_rules('nominee', 'Nominee', 'required');
    $this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[self_nominees.email]');
    $this->form_validation->set_rules('location', 'Location', 'required');
    $this->form_validation->set_rules('category', 'Category', 'required');
    $this->form_validation->set_rules('description', 'Description', 'required');
    $this->form_validation->set_rules('imageupload', 'Image Upload', 'callback__image_upload');
    $this->form_validation->set_rules('videoupload', 'Video Upload', 'callback__video_upload');

    if ($this->form_validation->run() == FALSE)
    {
        //Load the form
        $this->template('form.php');
    }
    else
    {       
        //Run code to add into the database
        $formdata = $this->input->post(NULL, TRUE); // this prevent from XSS attacks
        $this->load->model('users');
        $this->users->self_nominate($formdata['nominee'], $formdata['email'], $formdata['location'], $formdata['category'], $formdata['description'], 'image', 'video');                                    

        //Load the thankyou page
        $this->template('thankyou.php');
    }

}

/*----------------------------------------------------------------
    Image Upload Function
----------------------------------------------------------------*/

function _image_upload()
{
      $this->load->library('upload');

        // Check if there was a file uploaded
        if (!empty($_FILES['imageupload']['name']))
        {
            // Specify configuration for File 1
            $config['upload_path'] = 'uploads/images';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '100';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';       

            // Initialize config for File 1 
            $this->upload->initialize($config);

            // Upload file 1
            if ($this->upload->do_upload('imageupload'))
            {
                $data = $this->upload->data();

                return true;
            }
            else
            {
                $imageerrors = $this->upload->display_errors();
                $this->form_validation->set_message('_image_upload', $imageerrors);

                return false;
            }

        }

}
4

1 に答える 1

3

ここにあるドキュメントから直接。

$this->upload->data()

これは、アップロードしたファイルに関連するすべてのデータを含む配列を返すヘルパー関数です。配列のプロトタイプは次のとおりです。

Array
(
    [file_name]    => mypic.jpg
    [file_type]    => image/jpeg
    [file_path]    => /path/to/your/upload/
    [full_path]    => /path/to/your/upload/jpg.jpg
    [raw_name]     => mypic
    [orig_name]    => mypic.jpg
    [client_name]  => mypic.jpg
    [file_ext]     => .jpg
    [file_size]    => 22.2
    [is_image]     => 1
    [image_width]  => 800
    [image_height] => 600
    [image_type]   => jpeg
    [image_size_str] => width="800" height="200"
)

$this->upload->data()ファイルについて必要な情報がすべて含まれています。

于 2012-09-07T14:07:04.797 に答える