Thinker

php加密压缩文件

前言

近几日,用爬虫采集的了一些数据,存放到硬盘中,随着数据量越来越多,所以想上传到网盘当中,可是不加下密又觉得不放心,
所以开始用PHP的zip模块进行压缩加密.

开始

$zipArc = new \ZipArchive();

if ($zipArc->open('/home/test.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) {

    //设置密码 注意此处不是加密,仅仅是设置密码
    if (!$zipArc->setPassword('password')) {
        throw new RuntimeException('Set password failed');
    }

    //往压缩包内添加文件
    $zipArc->addFile('/home/test.png', '1/test.png');

    //加密文件 此处文件名及路径是压缩包内的
    if (!$zipArc->setEncryptionName('1/test.png', ZipArchive::EM_AES_256)) {
        throw new RuntimeException('Set encryption failed');
    }

}

2 方法找不到

提示没有setEncryptionName和setEncryptionIndex方法时,请编译时zip模块时用以下参数

--with-libzip
--enable-zip

3 目录结构问题

待压缩的文件目录,比说说是/home/test/a.png
压缩后,你发现压缩包内的目录结构是/home/test/a.png,
也就是说压缩包原封不动的保持了原来文件的目录.可是我们想自定义压缩包目录怎么办呢?

$a = '/home/test.png';
$b = '1/test.png';

//$a是待添加的文件路径  $b是压缩包内的路径
$zipArc->addFile($a, $b);

参考资料

posted @ 2018-09-07 17:28  ThinkerBlog  阅读(4190)  评论(0编辑  收藏  举报