ftp发送zip文件
This commit is contained in:
@@ -220,9 +220,12 @@ class Datebase extends Controller{
|
|||||||
*/
|
*/
|
||||||
public function dataPush(){
|
public function dataPush(){
|
||||||
$data = $this->request->post();
|
$data = $this->request->post();
|
||||||
// $data["journal_stage_id"] = 305;
|
//$data["journal_stage_id"] = 305;
|
||||||
$stage_info = $this->journal_stage_obj->where("journal_stage_id",$data["journal_stage_id"])->find();
|
$stage_info = $this->journal_stage_obj->where("journal_stage_id",$data["journal_stage_id"])->find();
|
||||||
$this->createEmailFile($data["journal_stage_id"]);
|
$this->createEmailFile($data["journal_stage_id"]);
|
||||||
|
// 发送ftp
|
||||||
|
$this->createFtpFileInfo($data["journal_stage_id"]);
|
||||||
|
|
||||||
$journal_info = $this->journal_obj->where("journal_id",$stage_info["journal_id"])->find();
|
$journal_info = $this->journal_obj->where("journal_id",$stage_info["journal_id"])->find();
|
||||||
$zipfile = ROOT_PATH."public/dataFile/".$data["journal_stage_id"].'/'.$data["journal_stage_id"].'.zip';
|
$zipfile = ROOT_PATH."public/dataFile/".$data["journal_stage_id"].'/'.$data["journal_stage_id"].'.zip';
|
||||||
$tt = "Dear Database,<br><br>";
|
$tt = "Dear Database,<br><br>";
|
||||||
@@ -234,7 +237,7 @@ class Datebase extends Controller{
|
|||||||
$tt .= "Telephone: +64 02108293806<br>";
|
$tt .= "Telephone: +64 02108293806<br>";
|
||||||
$tt .= "Email: publisher@tmrjournals.com<br>";
|
$tt .= "Email: publisher@tmrjournals.com<br>";
|
||||||
$tt .= "Website:www.tmrjournals.com";
|
$tt .= "Website:www.tmrjournals.com";
|
||||||
|
|
||||||
$elist = [];
|
$elist = [];
|
||||||
$elist[] = "jgatelicensing@informaticsglobal.com";
|
$elist[] = "jgatelicensing@informaticsglobal.com";
|
||||||
$elist[] = "3601240974@qq.com";
|
$elist[] = "3601240974@qq.com";
|
||||||
@@ -245,6 +248,8 @@ class Datebase extends Controller{
|
|||||||
$elist[] = "3097953993@qq.com";
|
$elist[] = "3097953993@qq.com";
|
||||||
$elist[] = "849192806@qq.com";//皮皮
|
$elist[] = "849192806@qq.com";//皮皮
|
||||||
$elist[] = "751475802@qq.com";//我
|
$elist[] = "751475802@qq.com";//我
|
||||||
|
$elist[] = "ELD@dia.govt.nz";
|
||||||
|
|
||||||
foreach ($elist as $v){
|
foreach ($elist as $v){
|
||||||
$cdata['email'] = $v;
|
$cdata['email'] = $v;
|
||||||
$cdata['title'] = "Data submitted-TMR Publishing Group";
|
$cdata['title'] = "Data submitted-TMR Publishing Group";
|
||||||
@@ -258,7 +263,6 @@ class Datebase extends Controller{
|
|||||||
}
|
}
|
||||||
|
|
||||||
return jsonSuccess([]);
|
return jsonSuccess([]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -304,7 +308,42 @@ class Datebase extends Controller{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private function createFtpFileInfo($journal_stage_id){
|
||||||
|
//查找分期信息
|
||||||
|
$stage_info = $this->journal_stage_obj->where("journal_stage_id",$journal_stage_id)->find();
|
||||||
|
$journalInfo = $this->journal_obj->where('journal_id',$stage_info['journal_id'])->find();
|
||||||
|
//获取分期文章
|
||||||
|
$articles = $this->article_obj->where(['journal_stage_id'=>$journal_stage_id,'state'=>0])->field('title as articleTitle,abbr as author,pub_date as date,keywords as keyWords,doi,abstract,file_pdf as pdf,article_id,journal_id')->select();
|
||||||
|
|
||||||
|
foreach ($articles as $k=>$v){
|
||||||
|
$articles[$k]['abstract'] = strip_tags($v['abstract']);
|
||||||
|
$articles[$k]['journalTitle'] = $journalInfo['title'];
|
||||||
|
$articles[$k]['issn'] = $journalInfo['title'];
|
||||||
|
$articles[$k]['vol'] = $stage_info['stage_vol'];
|
||||||
|
$articles[$k]['issue'] = $stage_info['stage_no'];
|
||||||
|
$articles[$k]['pdf'] = 'https://www.tmrjournals.cn/public/articlePDF/'.$v['pdf'];
|
||||||
|
$articles[$k]['linkToAbstract'] = 'https://www.tmrjournals.cn/article.html?J_num='.$v['journal_id'].'&a_id='.$v['article_id'];
|
||||||
|
$articles[$k]['publisher'] = 'TMR publishing group';
|
||||||
|
$articles[$k]['reference'] = '';
|
||||||
|
$articles[$k]['eissn'] = '';
|
||||||
|
|
||||||
|
}
|
||||||
|
$baseDir = ROOT_PATH.'public' . DS . 'ftpFile' . DS . '/';
|
||||||
|
$outfileTitle = $journalInfo['title']."-".$stage_info['stage_vol']."卷".$stage_info['stage_no']."期";
|
||||||
|
// 生成zip
|
||||||
|
$res= $this->createZip($articles,$baseDir,$outfileTitle);
|
||||||
|
|
||||||
|
$resJosn = json_decode($res,true);
|
||||||
|
|
||||||
|
// zip生成成功后发送ftp
|
||||||
|
if($resJosn['code'] = 0){
|
||||||
|
$name = $baseDir.$outfileTitle.".zip";
|
||||||
|
// 发送ftp
|
||||||
|
$this->sendFtp($name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -319,9 +358,106 @@ class Datebase extends Controller{
|
|||||||
return $frag;
|
return $frag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 先生成excel - 再压缩zip - 删除excel
|
||||||
|
private function createZip($articles,$baseDir,$outfileTitle){
|
||||||
|
Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的
|
||||||
|
Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
|
||||||
|
Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
|
||||||
|
$objExcel = new \PHPExcel();
|
||||||
|
//set document Property
|
||||||
|
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
|
||||||
|
|
||||||
|
$objActSheet = $objExcel->getActiveSheet();
|
||||||
|
$key = ord("A");
|
||||||
|
$letter =explode(',',"A,B,C,D,E,F,G,H,I,J,K,L,M,N,O");
|
||||||
|
$arrHeader = array('Article Title','Author','Publishing Date','Key Words','Journal Title','ISSN','EISSN','Volume','Issue','Link to Full-Text Articles (PDF)','Abstract','DOI','Link to Abstract','Publisher','Reference');
|
||||||
|
//填充表头信息
|
||||||
|
$lenth = count($arrHeader);
|
||||||
|
for($i = 0;$i < $lenth;$i++) {
|
||||||
|
$objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]");
|
||||||
|
// 设置表头高度
|
||||||
|
$objActSheet->getRowDimension('1')->setRowHeight(25);
|
||||||
|
};
|
||||||
|
//填充表格信息
|
||||||
|
foreach($articles as $k=>$v){
|
||||||
|
$k +=2;
|
||||||
|
$objActSheet->setCellValue('A'.$k,$v['articleTitle']);
|
||||||
|
$objActSheet->setCellValue('B'.$k, $v['author']);
|
||||||
|
$objActSheet->setCellValue('C'.$k, $v['date']);
|
||||||
|
$objActSheet->setCellValue('D'.$k, $v['keyWords']);
|
||||||
|
$objActSheet->setCellValue('E'.$k, $v['journalTitle']);
|
||||||
|
$objActSheet->setCellValue('F'.$k, $v['issn']);
|
||||||
|
$objActSheet->setCellValue('G'.$k, $v['eissn']);
|
||||||
|
$objActSheet->setCellValue('H'.$k, $v['vol']);
|
||||||
|
$objActSheet->setCellValue('I'.$k, $v['issue']);
|
||||||
|
$objActSheet->setCellValue('J'.$k, $v['pdf']);
|
||||||
|
$objActSheet->setCellValue('K'.$k, $v['abstract']);
|
||||||
|
$objActSheet->setCellValue('L'.$k, $v['doi']);
|
||||||
|
$objActSheet->setCellValue('M'.$k, $v['linkToAbstract']);
|
||||||
|
$objActSheet->setCellValue('N'.$k, $v['publisher']);
|
||||||
|
$objActSheet->setCellValue('O'.$k, $v['reference']);
|
||||||
|
// 表格高度
|
||||||
|
$objActSheet->getRowDimension($k)->setRowHeight(25);
|
||||||
|
}
|
||||||
|
$width = array(10,15,20,25,30);
|
||||||
|
//设置表格的宽度
|
||||||
|
$objActSheet->getColumnDimension('A')->setWidth($width[4]);
|
||||||
|
$objActSheet->getColumnDimension('B')->setWidth($width[2]);
|
||||||
|
$objActSheet->getColumnDimension('C')->setWidth($width[1]);
|
||||||
|
$objActSheet->getColumnDimension('D')->setWidth($width[4]);
|
||||||
|
$objActSheet->getColumnDimension('E')->setWidth($width[4]);
|
||||||
|
$objActSheet->getColumnDimension('F')->setWidth($width[2]);
|
||||||
|
$objActSheet->getColumnDimension('G')->setWidth($width[3]);
|
||||||
|
$objActSheet->getColumnDimension('H')->setWidth($width[1]);
|
||||||
|
$objActSheet->getColumnDimension('I')->setWidth($width[1]);
|
||||||
|
$objActSheet->getColumnDimension('J')->setWidth($width[4]);
|
||||||
|
$objActSheet->getColumnDimension('K')->setWidth($width[3]);
|
||||||
|
$objActSheet->getColumnDimension('L')->setWidth($width[3]);
|
||||||
|
$objActSheet->getColumnDimension('M')->setWidth($width[4]);
|
||||||
|
$objActSheet->getColumnDimension('N')->setWidth($width[2]);
|
||||||
|
$objActSheet->getColumnDimension('O')->setWidth($width[1]);
|
||||||
|
if(!is_dir($baseDir)){
|
||||||
|
@mkdir($baseDir);
|
||||||
|
}
|
||||||
|
$res = $objWriter->save($baseDir.$outfileTitle.".xlsx");
|
||||||
|
|
||||||
|
// 生成zip
|
||||||
|
$path = $baseDir.$outfileTitle.".xlsx";
|
||||||
|
$fileName = $outfileTitle.".zip";
|
||||||
|
$zip = new \ZipArchive;
|
||||||
|
$zip->open($baseDir.$fileName,\ZipArchive::CREATE);
|
||||||
|
$zip->addFile($path,basename($path));
|
||||||
|
$zip->close();
|
||||||
|
unlink($baseDir.$outfileTitle.".xlsx");
|
||||||
|
|
||||||
|
if (!file_exists($baseDir.$fileName)) {
|
||||||
|
return json_encode(['code'=>1,'msg'=>'无法找到文件']);
|
||||||
|
}
|
||||||
|
return json_encode(['code'=>0,'msg'=>'成功','data'=>$baseDir.$fileName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 连接ftp
|
||||||
|
private function sendFtp($name,$url){
|
||||||
|
$ftp=[
|
||||||
|
'server'=>'FTP.cnki.net',
|
||||||
|
'user'=>'glo616cnki',
|
||||||
|
'pass'=>'glo616cnki'
|
||||||
|
];
|
||||||
|
$con = ftp_connect($ftp['server']);
|
||||||
|
$res = ftp_login($con, $ftp['user'], $ftp['pass']);
|
||||||
|
if(!$res){ //连接失败
|
||||||
|
exit('连接失败');
|
||||||
|
}
|
||||||
|
$data = ftp_put($con,ROOT_PATH,$url,FTP_ASCII);
|
||||||
|
if(!$data){ // 上传失败
|
||||||
|
exit('上传失败');
|
||||||
|
}
|
||||||
|
ftp_close($con);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user