0

Code Igniter (CI) の Web フォームを使用して画像をアップロードできるように、サイトをセットアップしようとしています。エラーは発生していませんが、ファイルも保存されていません。画像のアップロードに成功した人が、何が問題なのかを説明できるかどうかを知りたかったのですか?

View:
<?php
    echo form_open_multipart('admin/galleryUpload') . "\n";
    echo "<div class='span-8'><span class='text'>Image:</span>" . form_upload('uploadImg') . "</div>";
    foreach ($gallery as $picture)
    {
        $order[] = $picture->order;
    }
    $order[] = count($order) + 1;
    echo "<div class='span-6 last'><span>Image Order #:</span>" . form_dropdown('order', $order) . "</div><div class='span-14'>&nbsp;</div>";
    $conf = array('name' => 'alt_text', 'size' => '75');
    echo "<div class='span-14 last'><span>Discription:</span>" . form_input($conf) . "<br /></div>";
    echo form_hidden('propertyID', "$propertyID");
    echo form_submit('upload', 'Upload');
    echo form_close();
?>

Controller:
class Admin extends Controller
{
    function galleryUpload()
    {
        if (! $this->session->userdata('is_admin'))
        {
            redirect('admin/index');
        }
        else
        {
            $this->load->model('admin_model');
            $this->admin_model->imgUpload();
        }
    }
}

Model:
class Admin_model extends Model
{
    function imgUpload()
    {
        $id = $this->input->post('propertyID');
        $order = $this->input->post('order');
        $alt_text = $this->input->post('alt_text');

        $config = array(
                'allowed_types' => 'jpg|jpeg|gif|png',
                //'upload_path' => '../' . $this->imgPath($id),
                'upload_path' => '../img/galleries/temp/',
                'max_size' => '5000', // 5MB files max
                );

        $this->load->library('upload', $config);
        $this->upload->do_upload();
        $image_data = $this->upload->data();

        $config = array(
                'source_image' => $image_data['full_path'],
                'new_image' => $this->imgPath($id) . '/thumbs',
                'maintain_ratio' => TRUE,
                'width' => '60'
                );
        $this->load->library('image_lib', $config);
        $this->image_lib->resize();
    }
}
4

1 に答える 1

1

ユーザーガイドから:

デフォルトでは、アップロード ルーチンは、ファイルが userfile というフォーム フィールドから取得されることを想定しており、フォームはマルチパート タイプである必要があります。

そのため、フォーム フィールドの名前を次のように変更する必要がありますuserfile

form_upload('userfile')

または、フォーム フィールドの名前を次のように渡しますdo_upload

$this->upload->do_upload('uploadImg');
于 2012-09-05T23:06:23.817 に答える