尝试使用密码即时生成Zip文件
<?php
$fileRequest = 'cooking-book';
// Prepare File
$file = tempnam("tmp", "zip");
$zip = new ZipArchive();
$zip->open($file, ZipArchive::OVERWRITE);
// Stuff with content
$getFile = file_get_contents('http://otherserver.com/getfile.php?sq='.$fileRequest);
$zip->addFromString('cooking-book.txt', $getFile);
// Close and send to users
$zip->close();
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$fileRequest.'.zip"');
readfile($file);
unlink($file);
?>
现在它工作正常(从其他服务器下载文件到内存,压缩,然后发送给用户)。
如何在zip上设置密码? (exec()shell_exec()不能使用)代码中的位置必须是什么?
谢谢。
答案 0 :(得分:1)
现在是未来,现在你可以做到:(PHP7.x功能)
ZipArchive :: setEncryptionName - 设置由其名称定义的条目的加密方法 http://php.net/manual/de/ziparchive.setencryptionname.php
// Challenge 3
function mapWith(array, callback) {
var newArray = [];
// Recall that forEach does not return anything, so you don't
// want your return statement here. Instead, wrap the orignal
// callback so that you can take each result and put it into
// your "newArray" variable.
forEach(array, function(element) {
// Push the result of original callback into the new array:
newArray.push(callback(element))
});
// Make sure to return this mapped array.
return newArray;
}
答案 1 :(得分:-4)
如果您使用的是PHP 5.6,则可以使用ZipArchive::setPassword为当前活动的存档添加密码。
您可以这样使用它:
$zip->setPassword("YourPasswordHere");
我会在$zip->close();