2025年批量导出pdf 和导出图片

批量导出pdf 和导出图片1 基于已经制作好的 pdf 和上传到服务器上后 前端只需要传递 pdf 链接 数组的形式 批量导出 pdf access public param id 分类编号 cat name 分类名称 return array public function actionExport ids Yii

1.

基于已经制作好的pdf和上传到服务器上后,前端只需要传递pdf链接 数组的形式

/**
* 批量导出pdf
* @access public
* @param id 分类编号 cat_name分类名称
* @return array
*/
public function actionExportpdf(){
$ids = Yii::$app->request->post('id');
$dcat_id = Yii::$app->request->post('dcat_id');
if (!$ids) {
return ['code' => -2, 'msg' => '参数错误'];
}
//商品文件属性
$dataFlie = new \backend\models\MmcDataFile();
$goodsDataFiles = $dataFlie->getGoodsDataFile($ids);
$goodsDataFiles= array_filter($goodsDataFiles,function ($v)use($dcat_id){
if($v['dcat_id']==$dcat_id){
return TRUE;
}
});
foreach ($goodsDataFiles as $val){
$url = $val['file_url'];
}
ob_end_clean();
ob_start();
$file = file_get_contents($url);
header("Content-type:application/octet-stream");
$filename = pathinfo($url,PATHINFO_BASENAME);
header("Content-Disposition:attachment;filename=" . $filename);
header("Accept-ranges:bytes");
ob_end_flush();
exit($file);
}

//导出图片 基于前端传递图片二维数组链接 把属于二维数组中的一维数组多个图片合并后并下载
public function actionExportimg()
{
$ids = Yii::$app->request->post('id');
$goodsThumb= Yii::$app->request->post('goods_thumb');
if (!$ids || !$goodsThumb) {
return ['code' => -2, 'msg' => '参数错误'];
}
if(is_array($goodsThumb)){
$root = $_SERVER['DOCUMENT_ROOT'];
$num = strrpos($root,'/');
$rootdir = substr($root,0,$num);
$num = strrpos($rootdir,'/');
$rootdir = substr($root,0,$num);
if(count($goodsThumb)<=0){return json_encode(['code'=>-101,'message'=>'未接收到图片','data'=>'']);}
$editor = Grafika::createEditor();
$imageBack = Grafika::createBlankImage(1200, count($goodsThumb)*1200);//创建一个750*750的空白图像
$backurl =$rootdir . '/backend/web/';
foreach ($goodsThumb as $k=>$pic_path) {
$dir_name =$backurl . $pic_path;
$editor->open($image,$dir_name );//打开1.jpeg并且存放到$image1
$editor->resizeFill($image, '1200','1200');//居中剪裁。就是把较短的变缩放到200px,然后将长边的大于200px的部分居中剪裁掉,图片不会变形
$editor->blend($imageBack, $image, 'normal', 1, 'top-center',0,$k*1200);//将两个图像合成在一起,第一个图像作为基础,第二个图像在顶部。支持多种混合模式
$num = strrpos($dir_name,'/');
$savedir = substr($dir_name,0,$num);
$savedir = $savedir . '/all_'.$ids.'.jpg';
$file = $editor->save($imageBack, $savedir );//imageBack保存为all.jpg
}
// var_dump($savedir);die;
if($file){
// $shorturl = str_replace($backurl,"",$savedir);
$httpurl = $savedir;
// var_dump($httpurl);die;
$files = file_get_contents($httpurl);
header("Content-type:application/octet-stream");
$filename = pathinfo($httpurl, PATHINFO_BASENAME);
header("Content-Disposition:attachment;filename=" . $filename);
header("Accept-ranges:bytes");
exit($files);
}else{
$file = file_get_contents($goodsThumb);
header("Content-type:application/octet-stream");
$filename = pathinfo($goodsThumb, PATHINFO_BASENAME);
header("Content-Disposition:attachment;filename=" . $filename);
header("Accept-ranges:bytes");
exit($file);
}
}
编程小号
上一篇 2025-01-27 12:21
下一篇 2025-02-11 19:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/136980.html