CSV导出
public function export()
{
$new_info = '数据库查询语句默认第一页';
$csv_title=array('序号','操作人','类型','采购时间','操作时间','批次号','供应商','仓库','合计(种)','金额','备注');
if($page == 1){
$keys = uniqid();
}else{
$keys = $content['keys'];
}
$name = './Uploads/purchase/'.$keys;
$this->put_csv($new_info,$csv_title,$name);
if(count($info) < 100){
$res = array(
'status'=>1,
'type'=>2,
'name'=>$name,
'page'=>++$page,
'keys'=>$keys
);
}else{
$res = array(
'status'=>1,
'type'=>1,
'page'=>++$page,
'keys'=>$keys
);
}
$this->ajaxReturn($res);
}
public function put_csv($list,$title,$directory_name){
$file_name="CSV".date("Y-m-d",time()).".csv";
header ( 'Content-Type: application/vnd.ms-excel' );
header ( 'Content-Disposition: attachment;filename='.$file_name );
header ( 'Cache-Control: max-age=0' );
$mi = uniqid();
if (!is_dir($directory_name)) {
$temp = ltrim($directory_name, './');
$arr = explode('/', $temp);
$str = './';
foreach ($arr as $key => $sv) {
if (!is_dir("{$str}/{$sv}")) {
mkdir("{$str}/{$sv}", 0777);
}
$str = "{$str}/{$sv}";
}
}
$file = fopen($directory_name.'/'.$mi.'.csv',"a");
foreach ($title as $v){
$tit[]=$v;
}
fputcsv($file,$tit);
foreach ($list as $v){
foreach ($v as $t){
$tarr[]=$t;
}
fputcsv($file,$tarr);
unset($tarr);
}
ob_flush();
flush();
unset($list);
fclose($file);
}
private function addFileToZip($path, $zip)
{
$handler = opendir($path);
while (($filename = readdir($handler)) !== false) {
if ($filename != "." && $filename != "..") {
if (is_dir($path . "/" . $filename)) {
$this->addFileToZip($path . "/" . $filename, $zip);
} else {
$zip->addFile($path . "/" . $filename, $filename);
}
}
}
@closedir($path);
}
public function ces()
{
$directory_name = I('get.directory_name');
$zip = new \ZipArchive();
$dir = ltrim($directory_name, './');
$arr = explode('/', $dir);
unset($arr[count($arr) - 1]);
$zipName = implode('/', $arr);
$url = $directory_name . '.zip';
if ($zip->open($url, \ZipArchive::CREATE) === TRUE) {
$this->addFileToZip($dir, $zip);
$zip->close();
if (!file_exists($url)) {
echo "文件不存在";
exit();
}
$file = fopen($url, "r");
Header("Content-type:application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: " . filesize($url));
header("Content-Disposition: attachment; filename=采购单" . date('Y-m-d_H:i:s') . ".zip");
echo fread($file, filesize($url));
fclose($file);
}
}