загрузить 2 изображения одновременно в codeigniter - PullRequest
0 голосов
/ 16 мая 2010

Может кто-нибудь, пожалуйста, предоставьте мне простой рабочий фрагмент кода codeigniter для загрузки 2 изображений одновременно (через 2 различных поля ввода).Мне нужно загрузить 2 изображения одновременно или одно за другим.и оба изображения должны быть в другом месте.

Я пытался сделать это сам, дважды вызвав функцию загрузки, но он вернул последние изображения со следующими расширениями: * .jpg.jpg.

может кто-нибудь помочь

Ответы [ 2 ]

0 голосов
/ 17 мая 2010

Контроллер

function create(){
        // we are using TinyMCE in this page, so load it
        $this->bep_assets->load_asset_group('TINYMCE');

        if ($this->input->post('name')){
            // fields are filled up so do the followings
            $this->MProducts->insertProduct();
            redirect('products/admin/index','refresh');
        }else{
            // this must be the first time, so set variables
            $data['title'] = "Create Product";

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

Модель

function insertProduct(){
        $data = array( 
            'name'          => db_clean($_POST['name']),
            'shortdesc'     => db_clean($_POST['shortdesc']),
            'longdesc'      => db_clean($_POST['longdesc'],5000),
            ...
                    ...
            'image1'        => db_clean($_POST['image1']),
            'image2'            => db_clean($_POST['image2'])
        );
        $this->db->insert('omc_product', $data);    
        $new_product_id = $this->db->insert_id();
     }

View

echo form_open_multipart('products/admin/create')."\n";

echo "<p><label for='parent'>Category</label><br/>\n";
echo form_dropdown('category_id',$categories) ."</p>\n";


echo "<p><label for='pname'>Name</label><br/>";
$data = array('name'=>'name','id'=>'pname','size'=>25);
echo form_input($data) ."</p>\n";

...

echo "<p><label for='image1'>Select Image</label><br/>";
$data = array('name'=>'image1','id'=>'image1','size'=>80);
echo form_textarea($data) ."</p>\n";

echo "<p><label for='image2'>Select another image</label><br/>";
$data = array('name'=>'image2','id'=>'image2','size'=>80);
echo form_textarea($data) ."</p>\n";

...
...
echo form_submit('submit','create product');
echo form_close();
0 голосов
/ 16 мая 2010

К сожалению, класс загрузки CodeIgniter не поддерживает более одного файла. Однако вы можете использовать стандартные функции PHP.

<form enctype="multipart/form-data" action="/upload/send" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    Send this file: <input name="a_file" type="file" /><br />
    Send another file: <input name="another_file" type="file" /><br />
    <input type="submit" value="Send Files" />
</form>

Затем в контроллере сделайте что-то вроде этого:

class Upload extends Controller {

    function Upload()
    {
        parent::Controller();
    }

    function index()
    {
        $data = array();

        $this->load->view('template/head');
        $this->load->view('upload', $data);
        $this->load->view('template/foot');
    }

    function send()
    {
        // TODO: error checking, and cleanse ['name'] to prevent hacks
        // http://www.php.net/manual/en/features.file-upload.errors.php
        move_uploaded_file(
            $_FILES['a_file']['tmp_name'],
            '/path/to/uploads/'.$_FILES['a_file']['name']
        );
        move_uploaded_file(
            $_FILES['another_file']['tmp_name'],
            '/path/to/uploads/'.$_FILES['another_file']['name']
        );
    }
}

http://www.php.net/manual/en/features.file-upload.post-method.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...