【问题标题】:grocery crud getState for uploads while inserting and updating杂货杂货 getState 用于在插入和更新时上传
【发布时间】:2014-01-08 14:36:57
【问题描述】:

我被 codeigniter, Grocery CRUD 代码卡住了,下面是一直困扰我的部分代码:

   if($state == 'add'){//add state
       $upload_path = '/files/dir1/';
   }
   else if($state == 'edit'){//edit state
       $upload_path = '/files/dir2/';
   }
   $this->crud->set_field_upload('image_url',  $upload_path);

这里我试图根据当前状态交换 $upload_path。但是这个给我带来了麻烦。除了文件被上传到 Grocery_CRUD.php 中设置的默认 *$upload_dir* 之外,一切工作正常。花了很多时间后,我发现所有文件上传的 $state 值都是“upload_file”(无论添加或编辑操作如何)。我非常需要区分插入或更新状态。我尝试使用

对其进行整理
if(strpos($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], '/add')){
             $upload_path = '/files/dir1/';
}
else if(strpos($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], '/edit')){
             $upload_path = '/files/dir2/';
}

甚至尝试使用:

strpos(current_url, '/add')
strpos(current_url, '/edit')

一切都失败了,因为 Grocery_CRUD.php 库文件无法告诉我除了 'upload_file' 作为当前状态之外的任何内容。

请帮助我!提前致谢。

【问题讨论】:

    标签: php codeigniter codeigniter-2 grocery-crud


    【解决方案1】:

    我自己想通了,诀窍是创建一个会话变量,并在调用上传之前检查它与之前的状态。

    对于在会话中创建一个变量,检查它的值是否添加或编辑并相应地分配路径。

    $upload_path = '';
    if( $state == 'add' || $state == 'edit'){//only create the session if $state is add or edit
        $this->session->set_userdata('statevar',$state);
    }
    if($this->session->userdata('statevar') == 'add'){//add state
        $upload_path = 'files/dir1/';
    }
    else if($this->session->userdata('statevar') == 'edit'){//edit state
        $upload_path = 'files/dir2/';
    }
    $this->crud->set_field_upload('imgurl', $upload_path);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-21
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多