导出压缩包

/*
     * 图片导出
     * 
     * @author yao
     */
    public function photoexport()
    {
    //数据权限
    $res["saleman_id"]=array("in",session('data_staff_array'));
    if(isset($_GET["start"])&&isset($_GET["end"])){
    $start=strtotime($_GET['start']);
    $end=strtotime($_GET['end'].'+1 day');
    $where["add_time"]=array('between',"$start,$end");
    }
    if(isset($_GET["shop"]))
    $shop=" cust_name like '%{$_GET["shop"]}%' and";
    if (!empty($_GET["display_name"]))
    $where["display_name"] = $_GET["display_name"];
    if(isset($_GET["name"])&&$_GET["name"]!=0)
    $staffStr=$_GET["name"];
    else
    $staffStr=$_SESSION["data_staff_string"];
    $list=M("shop_display")->table("zstb_shop_display sd")
    ->field("sd_id,saleman_id,shop_id,display_id,display_name,display_img,add_time,sd.remark,staff_name,cust_name")
    ->join("inner join zstb_base_staff bs on bs.org_parent_id=".session("org_parent_id")." and bs.staff_id=sd.saleman_id")
    ->join("inner join zstb_customer_info ci on sd.shop_id=ci.cust_id and$shop ci.org_parent_id=".session("org_parent_id")."")
    ->where($where)
    ->where("sd.org_parent_id=".session("org_parent_id")." and saleman_id in({$staffStr})")
    ->order("add_time desc")
    ->select();
    $dir = './Public/Uploads/Dphoto';
    $new_dir = $dir.'/'.'photo';
    //创建目录  以每个店铺命名文件夹 存在同名文件则删除后重新创建
    foreach ($list as $k=>$val){
    $cust_name = D('CustomerInfo')->getCustmerName($val['shop_id']);
    $shop_name=iconv("UTF-8","GBK",$cust_name);
    if (file_exists($new_dir.'/'.$shop_name))
    {
    $dh = opendir($new_dir.'/'.$shop_name);
    while ($file = readdir($dh))
    {
    if($file != "." && $file != "..")
    {
    $fullpath = $new_dir."/".$file;
    if(!is_dir($fullpath) && file_exists($fullpath))
    {
    unlink($fullpath);
    }
    }
    }
    closedir($dh);
    }
    mkdir($new_dir.'/'.$shop_name,0777,true);
    }
   
   
   
    if (!is_null($list))
    {
    foreach ($list as $k1=>$v1)
    {
  if(!empty($v1['display_img']))
    {
    $custa_name = D('CustomerInfo')->getCustmerName($v1['shop_id']);
    $shopa_name=iconv("UTF-8","GBK",$custa_name);
    $photo_name=iconv("UTF-8","GBK",$v1['display_name']);
    copy('./Public/Uploads/'.$v1['display_img'],$new_dir.'/'.$shopa_name.'/'.$photo_name.'('.$k1.').jpg');
    }
    }
    }
    // 打包下载
    import('Org.Util.FileToZip');
    $handler = opendir($new_dir);
    $download_file = array();
    $i = 0;
   
    while( ($filename = readdir($handler)) !== false ) {
    if($filename != '.' && $filename != '..') {
    $download_file[$i++] = $filename;
    rmdir($new_dir.'/'.$filename);
    }
    }
    closedir($handler);
    if(empty($download_file))
    {
    echo "<meta charset='utf-8'><script>alert('没有可导出的照片!');window.history.go(-1);</script>";
    exit;
    }
    $zipdir = new \Org\Util\TraverseDir();
    $zipdir->zip($new_dir,$dir);
    }
    
在Spring Boot中,可以使用Java的ZipOutputStream类来实现导出压缩包的功能。下面是一个示例代码: ```java import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipUtil { public static void zipFiles(String sourceFolderPath, String zipFilePath) throws IOException { FileOutputStream fos = new FileOutputStream(zipFilePath); ZipOutputStream zipOut = new ZipOutputStream(fos); File fileToZip = new File(sourceFolderPath); zipFile(fileToZip, fileToZip.getName(), zipOut); zipOut.close(); fos.close(); } private static void zipFile(File fileToZip, String fileName, ZipOutputStream zipOut) throws IOException { if (fileToZip.isHidden()) { return; } if (fileToZip.isDirectory()) { if (fileName.endsWith("/")) { zipOut.putNextEntry(new ZipEntry(fileName)); zipOut.closeEntry(); } else { zipOut.putNextEntry(new ZipEntry(fileName + "/")); zipOut.closeEntry(); } File[] children = fileToZip.listFiles(); for (File childFile : children) { zipFile(childFile, fileName + "/" + childFile.getName(), zipOut); } return; } FileInputStream fis = new FileInputStream(fileToZip); ZipEntry zipEntry = new ZipEntry(fileName); zipOut.putNextEntry(zipEntry); byte[] bytes = new byte[1024]; int length; while ((length = fis.read(bytes)) >= 0) { zipOut.write(bytes, 0, length); } fis.close(); } } ``` 你可以调用`zipFiles`方法来实现将指定文件夹下的所有文件压缩成一个zip文件。例如: ```java String sourceFolderPath = "/path/to/source/folder"; String zipFilePath = "/path/to/zip/file.zip"; ZipUtil.zipFiles(sourceFolderPath, zipFilePath); ``` 这样就可以将`sourceFolderPath`文件夹下的所有文件压缩成一个名为`file.zip`的zip文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值