【问题标题】:Multiple Upload with Grocery Crud使用 Grocery Crud 进行多次上传
【发布时间】:2013-03-08 15:01:51
【问题描述】:

我正在与杂货店杂货一起在后端进行一些操作,我需要上传 5 张图片(其中 3 张具有相同的宽度和高度,另外 2 张具有不同的尺寸)但是,当我尝试使用set_field_upload,所有文件都以一种大小上传。我期望不同的尺寸。我也尝试过使用GD2Codeigniter 版本),但我不知道是否可以使用grocery_crud

public function marcas(){

        $this       ->  load                ->  view('header');
        $this       ->  load                ->  view('leftbar');
        $this       ->  grocery_crud        ->  set_theme('datatables');        
        $this       ->  grocery_crud        ->  set_table('marcas');
        $this       ->  grocery_crud        ->  set_subject('Marcas');
        $this       ->  grocery_crud        ->  columns('nombre','descripcion','texto','logo');
        $this       ->  grocery_crud        ->  set_relation('id_tipo_marca','tipo_marcas','nombre');
        $this       ->  grocery_crud        ->  display_as('id','ID');
        $this       ->  grocery_crud        ->  display_as('id_tipo_marca','Tipo Marca');
        $this       ->  grocery_crud        ->  display_as('nombre','Nombre');
        $this       ->  grocery_crud        ->  display_as('descripcion','Descripcion');
        $this       ->  grocery_crud        ->  display_as('texto','Texto');
        $this       ->  grocery_crud        ->  display_as('link','Link');
        $this       ->  grocery_crud        ->  display_as('logo','Logo');
        $this       ->  grocery_crud        ->  set_field_upload('logo','../img');
        $this       ->  grocery_crud        ->  callback_after_upload(array($this, 'example_callback_after_upload_logo'));
        $this       ->  grocery_crud        ->  display_as('imagen','Imagen Grande');
        $this       ->  grocery_crud        ->  display_as('imagen2','Imagen Pequeña 1');
        $this       ->  grocery_crud        ->  display_as('imagen3','Imagen Pequeña 2');
        $this       ->  grocery_crud        ->  display_as('imagen4','Imagen Pequeña 3');
        $this       ->  grocery_crud        ->  set_field_upload('imagen','../img/grande');
        $this       ->  grocery_crud        ->  callback_after_upload(array($this, 'example_callback_after_upload_grande'));
        $this       ->  grocery_crud        ->  set_field_upload('imagen2','../img/thumb');
        $this       ->  grocery_crud        ->  set_field_upload('imagen3','../img/thumb');
        $this       ->  grocery_crud        ->  set_field_upload('imagen4','../img/thumb');
        $this       ->  grocery_crud        ->  callback_after_upload(array($this, 'example_callback_after_upload_thumb'));
        $output     =   $this               ->  grocery_crud            ->  render();
        $this       ->  _example_output($output);
        $this       ->  load                ->  view('footer');       
}

function example_callback_after_upload_grande($uploader_response,$field_info,$files_to_upload){
    $this -> load -> library ('image_moo');
    $file_uploaded = $field_info->upload_path.'/'.$uploader_response[0]->name;
    $this -> image_moo -> load($file_uploaded) ->resize_crop(317,140)->save($file_uploaded, true);
    return true;
var_dump($uploader_response);die;

function     example_callback_after_upload_logo($uploader_response,$field_info,$files_to_upload){
    $this -> load -> library ('image_moo');
    $file_uploaded = $field_info->upload_path.'/'.$uploader_response[0]->name;
    $this -> image_moo -> load($file_uploaded) ->resize(125,83)-    >save($file_uploaded, true);
    return true;
var_dump($uploader_response);die;
}

function example_callback_after_upload_thumb($uploader_response,$field_info,$files_to_upload){
    $this -> load -> library ('image_moo');
    $file_uploaded = $field_info->upload_path.'/'.$uploader_response[0]->name;
    $this -> image_moo -> load($file_uploaded) ->resize_crop(317,140)->save($file_uploaded, true);
    return true;
var_dump($uploader_response);die;

}

【问题讨论】:

    标签: php gd2 grocery-crud


    【解决方案1】:

    这是我的解决方案。

        public function marcas(){
            ...
            $this->grocery_crud->callback_after_upload(array($this, 'reImage_callback_after_upload'));
            ...
        }
    
    public function reImage_callback_after_upload($uploader_response, $field_info, $files_to_upload) {
        $this -> load -> library('image_moo');
        switch ($field_info->field_name) {  
            case 'logo':
                $file_uploaded = $field_info -> upload_path . '/' . $uploader_response[0] -> name;
                $this -> image_moo -> load($file_uploaded) -> resize_crop(20, 20) -> save($file_uploaded, true);
                return true;
                break;  
            case 'imagen':
                $file_uploaded = $field_info -> upload_path . '/' . $uploader_response[0] -> name;
                $this -> image_moo -> load($file_uploaded) -> resize_crop(30, 30) -> save($file_uploaded, true);
                return true;
                break;  
            case 'imagen2':
                $file_uploaded = $field_info -> upload_path . '/' . $uploader_response[0] -> name;
                $this -> image_moo -> load($file_uploaded) -> resize_crop(40, 40) -> save($file_uploaded, true);
                return true;
                break;  
            case 'imagen3':
                $file_uploaded = $field_info -> upload_path . '/' . $uploader_response[0] -> name;
                $this -> image_moo -> load($file_uploaded) -> resize_crop(50, 50) -> save($file_uploaded, true);
                return true;
                break;      
            case 'imagen4':
                $file_uploaded = $field_info -> upload_path . '/' . $uploader_response[0] -> name;
                $this -> image_moo -> load($file_uploaded) -> resize_crop(60, 60) -> save($file_uploaded, true);
                return true;
            break;  
            default:
                return false;
                break;
        }
    }
    

    【讨论】:

    • 你能解释一下它是如何工作的/它基本上是做什么的吗?我有一个类似的问题,看起来你的解决方案很合适,但我不确定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2018-04-16
    相关资源
    最近更新 更多