前言
近几日,用爬虫采集的了一些数据,存放到硬盘中,随着数据量越来越多,所以想上传到网盘当中,可是不加下密又觉得不放心,
所以开始用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);