## 上传组件设置
首先我们要在控制器内引用该方法。
~~~
/**
* 设置上传组件
* @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);
}
~~~