首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏stark张宇

    PHP - ZipArchive上传、下载实例

    概述在很多实际生产场景都需要批量上传、下载一些文件的处理,整理了使用PHP语言操作ZipArchive实践和实例,ZipArchive需要服务器上安装zlib库,php扩展中安装zip扩展。 服务器环境扩展ZipArchive类库的PHP版本要求如下,另外php需要查看是否已经成功安装zip扩展,服务器上需要安装zlib包,具体查看方法在下面的代码段里。 # ZipArchive 类版本要求,来自官网# (PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)#查看是否安装zlib包yum list installed ;if ($zip->open($destination, ZIPARCHIVE::CREATE) ! ;if ($zip->open($destination, ZIPARCHIVE::CREATE) !

    1.1K54编辑于 2024-03-27
  • 来自专栏编程语言的世界

    解决php ZipArchive生成压缩文件带有目录层级的问题

    如果你使用php ZipArchive  addFile 方法把多个文件压缩在1个目录时会产生一个问题,我们只想要在当前目录把所有文件放在一起,结果他安装每个文件的所在目录在当前目录创建一遍,解决方式如下

    1.6K20编辑于 2023-06-03
  • 来自专栏代码编写世界

    使用libzip压缩文件和文件夹

    zip_source_t* source = zip_source_buffer(zipArchive, bufferData, bufferSize, 1); if (source) { if (zip_file_add(zipArchive, relativeName, source, ZIP_FL_OVERWRITE) < 0) { std::cerr << "Failed to add file " << unZipFilePath << " to zip: " << zip_strerror(zipArchive) << ); errorCode = zip_close(zipArchive); if (errorCode ! ) { CompressDirectory2Zip(directoryPath, directoryPath, zipArchive); errorCode = zip_close(zipArchive

    81410编辑于 2024-12-14
  • 来自专栏明丰随笔

    浅谈.Net Framework中压缩和解压

    { Read, Create, Update } ZipArchive类 表示压缩文件的压缩包,采用zip存档格式。 ZipArchiveZipArchive对象表示以zip文件格式打包的压缩文件。可以通过ZipFile类的OpenRead方法返回ZipArchive对象。 通过ZipArchive对象可以读取压缩在zip存档中的文件。 ? 下面的示例,列出了zip存档中包含的文件。 using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Update)) { // Add entry to ZipArchive.

    1.6K20发布于 2019-07-23
  • 来自专栏林德熙的博客

    dotnet C# 简单的追加文件夹到 ZipArchive 压缩文件的方法

    本文将告诉大家一个在 ZipArchive 里追加文件夹,以及添加过滤文件处理的压缩文件辅助方法 实现的方法的代码如下 ///

    /// 追加文件夹到压缩文件里面 /// <param name="fileCanAddedPredicate"></param> public static void AppendDirectoryToZipArchive(ZipArchive = new ZipArchive(fileStream, ZipArchiveMode.Create, leaveOpen: true/*自己释放 FileStream 对象*/, Encoding.UTF8 (zipArchive, @"C:\lindexi\CA\", "Pem", fileCanAddedPredicate: filePath => { var fileName (zipArchive, @"C:\lindexi\CA\", "Pem", fileCanAddedPredicate: filePath => { var fileName

    77810编辑于 2024-04-27
  • 来自专栏跟着阿笨一起玩NET

    net/net core 压缩和解压文件类—完美支持Linux

    FileStream zipFileToOpen = new FileStream(fileOut, FileMode.OpenOrCreate)) { using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Update)) { fileName FileStream zipFileToOpen = new FileStream(fileOut, FileMode.OpenOrCreate)) { using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Update)) { foreach archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Update)) { foreach

    1.7K10编辑于 2022-09-26
  • 来自专栏代码编写世界

    CMake构建学习笔记15-组建第一个程序项目

    zip_source_t* source = zip_source_buffer(zipArchive, bufferData, bufferSize, 1); if (source) { if (zip_file_add(zipArchive, relativeName, source, ZIP_FL_OVERWRITE) < 0) { std::cerr << "Failed to add file " << unZipFilePath << " to zip: " << zip_strerror(zipArchive) << ); errorCode = zip_close(zipArchive); if (errorCode ! ) { CompressDirectory2Zip(directoryPath, directoryPath, zipArchive); errorCode = zip_close(zipArchive

    63610编辑于 2024-12-14
  • 来自专栏蔻丁杂记

    C# Zip解压缩,规避 [content_types].xml 文件

    summary>public static IEnumerable<string> DecompressFileCompatibly(string target, string outPath){ ZipArchive zipArchive = ZipFile.Open(target, ZipArchiveMode.Read); // 获取所有文件(相对路径) var files = zipArchive.Entries.Select (e => e.FullName).ToList(); // 解压文件 (要求 outPath 不能存在,必须是全新的) zipArchive.ExtractToDirectory(outPath

    65800编辑于 2024-12-25
  • 来自专栏小孟开发笔记

    PHP打包资源为zip

    1、 开启自带的ZipArchive类,实现压缩解压功能 安装 php_zip 扩展 参考文档https://www.jianshu.com/p/7d032dc34219 2、 接入代码如下 /**** *****压缩文件为zip包*** * 判断zip扩展是否安装生效,能查询到zip扩展则可以使用ZipArchive,但注意要加上\ ****/ public function ys_to_zip(){ uploads/xcx/20220115/2.jpg”];filename =ROOT_PATH.”public/uploads/xcx/20220115/6666.zip”; zip = new \ZipArchive ();zip->open(filename,\ZipArchive::CREATE); //打开压缩包 foreach(fileList as file){ file=str_replace(“\\”,

    2.3K30编辑于 2023-02-20
  • 来自专栏宸机笔记

    PHP-常用方法

    $down.'.zip'; $zip = new ZipArchive(); if($zip->open($zip_path, ZipArchive::OVERWRITE)=== TRUE){ 可以使用ZipArchive::addFromString()来实现。 注意:如果操作系统是Windows,文件系统编码是gbk. 如果php文件的文件编码是utf-8,需要相应转码。 ZipArchive::addFile() fails if the filename contains Chinese characters. ZipArchive::addFromString() should be used instead. <? php $z = new ZipArchive; $file = '中文.txt'; if($z->open(ZIPARCHIVE::CREATE)===true){

    1.8K20发布于 2020-11-04
  • 来自专栏walterlv - 吕毅的博客

    .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。

    在 System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory() 在 System.IO.Compression.ZipArchive.Init (Stream stream, ZipArchiveMode mode, Boolean leaveOpen) 在 System.IO.Compression.ZipArchive..ctor(Stream

    3.7K30发布于 2020-02-11
  • 来自专栏自留地2

    详解PHP素材图片上传、下载功能

     这里的下载是生成 zip 包进行下载,所以需要 PHP 的ZipArchive ()类,使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释。 下面直接上代码: $filename = rand(0, 999).'.zip'; $zip = new ZipArchive(); /* $zip->open($filename, ZipArchive ::CREATE | ZipArchive::OVERWRITE); // 添加文件内容到zip 文档 $zip->addFromString(/ /, / /); // 设置请求头,下载压缩包,并且删除服务器上的临时

    2.5K20发布于 2021-07-13
  • 来自专栏林德熙的博客

    ASP.NET Core 将文件夹内容输出为压缩包文件方法

    而这个属性可以作为 Stream 请看下面代码 using var stream = HttpContext.Response.BodyWriter.AsStream(); 在 .NET 中可以通过 ZipArchive 将一个文件夹的文件按照压缩文件格式写入,还可以设置压缩的压缩率等,可以设置文件所在文件夹的路径 通过在这个 stream 创建一个 ZipArchive 类,然后在这个类里面创建文件的方法就可以做到不断向客户端发送文件 directory, Stream stream) { var fileList = directory.GetFiles(); using var zipArchive = new ZipArchive(stream, ZipArchiveMode.Create); foreach (var file in fileList) 实际上我的业务是在内网传输,我的磁盘读取速度大概是 20M 一秒,而网络传输是 10M 一秒,也就是此时的压缩其实没什么意义,压缩减少的内容减少的传输时间就和压缩的时间差不多 如果小伙伴需要传输的时候压缩,请设置 zipArchive.CreateEntry

    1.9K20发布于 2020-08-02
  • 来自专栏建站闲谈

    宝塔面板php7.3&7.4版本不支持ZipArchive手工安装扩展方法

    宝塔面板安装的PHP7.3和7.4默认已经不带zip扩展,要手工安装zip扩展首先需要安装libzip,方法如下:

    3.9K10编辑于 2022-02-23
  • 来自专栏IT杂症

    php解压文件

    archive, $destination); break; } } /** * Decompress/extract a zip archive using ZipArchive class_exists('ZipArchive')) { $GLOBALS['status'] = array('error' => 'Error: Your PHP version does not support unzip functionality.'); return; } $zip = new ZipArchive; // Check if * * @param ZipArchive $zipFile * Zipfile where files end up. (); $z->open($outZipPath, ZipArchive::CREATE); $z->addEmptyDir($dirName); if ($sourcePath

    5.7K20编辑于 2022-12-14
  • 来自专栏pankas的技术分享

    2022浙江省赛web-wp及复现

    $file_name; move_uploaded_file($_FILES['file']['tmp_name'],$file_path); $zip = new ZipArchive(); if ( 所以现在就需要构造一个会让 ZipArchive 出现异常的压缩包,把文件解压缩到 error/md5(time()) 这个确定的目录下,然后条件竞争访问即可。 因为finecms这个例子太久远了,我也懒得找那么久远的代码来复现,我这里就以两个解压的程序作为例子: Windows下的7zip PHP自带的ZipArchive库 先说7zip。 我们再用PHP自带的ZipArchive库(代码如图4) 测试这个zip,发现解压并没有出错,这也说明ZipArchive的容忍度比较高。 那么我们又如何让ZipArchive出错呢? $file_name; move_uploaded_file($_FILES['file']['tmp_name'],$file_path); $zip = new ZipArchive(); if (

    80020编辑于 2022-10-05
  • 来自专栏用户7873631的专栏

    php案例:解压一个压缩包中多个文件

    phpstudy_pro"; if (empty($path) || empty($filePath)) { return false; } $zip = new ZipArchive ();//新建一个ZipArchive(压缩)的对象 if ($zip->open($filePath) === true) {//如果说D:/phpstudy_pro/WWW/cyg.zip

    1.2K20编辑于 2022-10-24
  • 来自专栏技术派

    PHP实现打包下载文件的方法示例

    $__tmp[1]; } } if( $items ) { $zip = new ZipArchive(); /【要记得博客地址www.isres.com】/ $filename = time().' file_exists($zipname)) { $res = $zip->open($zipname, ZipArchive::CREATE | ZipArchive::OVERWRITE); if

    1.1K20发布于 2021-07-09
  • 来自专栏WEB开发~

    PHP对目录下的子目录及文件进行压缩并解压

    $dirName;//防止传递'folder' 文件夹产生bug $z = new \ZipArchive(); $z->open($outZipPath, \ZIPARCHIVE::CREATE php $zip = new \ZipArchive(); if ($zip->open('test.zip') === TRUE){ //假设解压缩到在当前路径下demo文件夹 $zip

    2.2K60发布于 2021-05-07
  • 来自专栏walterlv - 吕毅的博客

    .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。

    在 System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory() 在 System.IO.Compression.ZipArchive.Init (Stream stream, ZipArchiveMode mode, Boolean leaveOpen) 在 System.IO.Compression.ZipArchive..ctor(Stream

    2.1K40编辑于 2023-10-22
领券