ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 上传组件设置 首先我们要在控制器内引用该方法。 ~~~ /** * 设置上传组件 * @var [type] */ $up = new \app\lib\plupload; $up->ele = 'img'; $up->count = 1; $img=model('customers')->one(['id'=>$_GET['id']])->img; if($img) $up->option['data'] = [$img]; config('up',$up); ~~~ 然后在模板内你所需要的位置插入该代码: ~~~ <?php echo config('up')->show(); ?> ~~~ >[info]有时候我们可能要定义图片的大小,那么我们该如何操作呢?请看下面的范例介绍: ~~~ <?php config('up')->option['w'] = 90; config('up')->option['h'] = 45; echo config('up')->show(); ?> ~~~ 最后在模板尾部引用: ~~~ <?php echo config('up')->load(); echo config('up')->js(); ?> ~~~ 这样就可以实现一个简单的上传文件功能。 ## 文件导出功能 ~~~ //数据导出 public function csv(){ $data = \app\block\comm::pager_customers(true); $arr=array(); foreach($data->data as $k=>$v){ $arr[$k]['id']=$v->id; $arr[$k]['nickname']=$v->nickname?$v->nickname:'无'; $arr[$k]['sex']=$v->sex==1?'男':'女'; $arr[$k]['bron_date']=$v->bron_date; $arr[$k]['job']=$v->job?$v->job:'无'; $arr[$k]['tel']=$v->tel?$v->tel:'无'; $arr[$k]['text']=$v->text?$v->text:'无'; $arr[$k]['created']=$v->created; } $header = ['序号','姓名','性别','生日','职业','电话','兴趣爱好','建档时间']; $name=date('Y-m-d').'-'.'客户档案列表.csv'; \app\block\common::csv_output($arr,$header,$name); die; } ~~~ 我们只需要调用 `\app\block\common::csv_output($arr,$header,$name)`该方法将具体的参数传入即可,而打印的具体代码如下,所属位置为`\app\block\common`: ~~~ /** * 导出CSV文件 * @param array $data 数据 * @param array $header_data 首行数据 * @param string $file_name 文件名称 * @return string */ static function csv_output($data = [], $header_data = [], $file_name = '') { header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename='.$file_name); header('Cache-Control: max-age=0'); $fp = fopen('php://output', 'a'); if (!empty($header_data)) { foreach ($header_data as $key => $value) { $header_data[$key] = iconv('utf-8', 'gbk', $value); } fputcsv($fp, $header_data); } $num = 0; //每隔$limit行,刷新一下输出buffer,不要太大,也不要太小 $limit = 100000; //逐行取出数据,不浪费内存 $count = count($data); if ($count > 0) { for ($i = 0; $i < $count; $i++) { $num++; //刷新一下输出buffer,防止由于数据过多造成问题 if ($limit == $num) { ob_flush(); flush(); $num = 0; } $row = $data[$i]; foreach ($row as $key => $value) { $row[$key] = iconv('utf-8', 'gbk', $value); } fputcsv($fp, $row); } } fclose($fp); } ~~~