0

3日間の検索で疲れました。誰かが私に教えたり、画像付きのテキストをアップロードする方法の例を教えてもらえますか?

my table:

name -> varchar
lastname -> varchar
position -> varchar
pass_id -> int
image_url -> varchar

これはform_viewファイルです

<h2>Create</h2>

<?php echo form_open('main/add'); ?>
<p>
    <label for="name">Name:</label>
    <input type="text" name="name" id="name" />
</p>

<p>
    <label for="lastname">Lastname:</label>
    <input type="text" name="lastname" id="lastname" />
</p>

<p>
    <label for="position">Position:</label>
    <input type="text" name="position" id="position" />
</p>


    <p>
    <label for="name">Passport ID:</label>
    <input type="text" name="pass_id" id="pass_id" />
</p>

    <input type="file" name="userfile" size="20" />

    <input type="submit" value="Submit" />

<?php echo form_close(); ?>

これはコントローラーファイルです:

public function add()
{

    $subject  = array(
        'name' => $this->input->post('name'), 
        'lastname' => $this->input->post('lastname'),
        'position' => $this->input->post('position'),
        'pass_id' => $this->input->post('pass_id')

        );


    $this->main_model->add($subject);
    $this->index();
}

およびモデルファイル:

public function add($object)
{
    $this->db->insert('stuf', $object);
    return;

}

データベースに画像のURLをアップロードする方法。

私はCIの初心者です。ありがとう

4

3 に答える 3

2

form_open_multipart("main/add")の代わりに使用してform_open("main/add")ください。

そして、コントローラーを少し変更します。

$this->load->library('upload'); // See File Uploading in Code Igniter Documentation

$this->load->helper(array('form', 'url')); // See form, and url helper

$my_path = "your_uploads_folder"

$config['upload_path']   = './'. $my_path .'/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size']   = '100';
$config['max_width']     = '1024';
$config['max_height']    = '768';

$this->upload->do_upload('userfile', $config);

$subject  = array(

    'url'      => $url . '/' . $my_path // Dont forget to create the table field

    'name'     => $this->input->post('name'), 
    'lastname' => $this->input->post('lastname'),
    'position' => $this->input->post('position'),
    'pass_id'  => $this->input->post('pass_id'),
);


$this->main_model->add($subject);

redirect('/main/index/', 'refresh'); // Use redirect instead

まだテストされていません

于 2012-12-16T20:13:28.987 に答える
0
$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"
)

ソース

于 2012-12-16T19:41:15.970 に答える
0

これは解決策です:)

public function new_record()
{

        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '100';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';

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

        if (!$this->upload->do_upload('userfile'))
        {
                echo $this->upload->display_errors();
            }
            else
        {
                $data =  $this->upload->data();
                $full_path = 'uploads/' . $data['file_name'];

            $subject  = array(
                'name'     => $this->input->post('name'), 
                'lastname' => $this->input->post('lastname'),
                'position' => $this->input->post('position'),
                'pass_id'  => $this->input->post('pass_id'),
                'image_url'  => $full_path 
            );


            $this->main_model->add($subject);
            redirect('/main/index/', 'refresh');
        }
于 2012-12-17T07:20:20.157 に答える