1

我正在与杂货店一起在后端进行一些操作,我需要上传 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;

}
4

1 回答 1

2

这是我的解决方案。

    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;
    }
}
于 2013-03-12T03:39:12.403 回答