本文整理汇总了PHP中ZipArchive::setCompressionName方法的典型用法代码示例。如果您正苦于以下问题:PHP ZipArchive::setCompressionName方法的具体用法?PHP ZipArchive::setCompressionName怎么用?PHP ZipArchive::setCompressionName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZipArchive
的用法示例。
在下文中一共展示了ZipArchive::setCompressionName方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: dl
<?php
error_reporting(E_ALL);
if (!extension_loaded('zip')) {
dl('zip.so');
}
$zip = new ZipArchive();
$filename = "a.zip";
if (!$zip->open($filename, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE)) {
exit("cannot open <{$filename}>\n");
}
$zip->addFromString("testfilephp.txt", "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt", "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile("too.php", "testfromfile.php");
$zip->setCompressionName("testfilephp2.txt", ZipArchive::CM_STORE);
$zip->setCompressionIndex(2, ZipArchive::CM_STORE);
$zip->close();
示例2: action_download
public function action_download()
{
$id = preg_replace('/[^a-z0-9]/i', '', $this->request->param('id'));
DB::delete('downloads')->where('expires', '<=', time())->execute();
$expired = DB::select('filename')->from('download_packages')->where('expires', '<=', time())->execute()->as_array(NULL, 'filename');
if ($expired) {
foreach ($expired as $file) {
if (file_exists($file)) {
unlink($file);
}
}
DB::delete('download_packages')->where('filename', 'IN', $expired)->execute();
}
$filename = DOCROOT . 'storage/zip' . $id;
DB::query(Database::UPDATE, DB::expr('REPLACE INTO `download_packages` (`filename`, `expires`) VALUES (:filename, :expires)', array(':filename' => $filename, ':expires' => time() + 3600))->compile())->execute();
$files = DB::select()->from('downloads')->where('download_id', '=', $id)->execute()->as_array();
if (!$files) {
if (!file_exists($filename)) {
throw new HTTP_Exception_404('Not found');
}
header('X-SendFile: ' . realpath($filename));
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="Attachments.zip"');
header('X-Accel-Redirect: ' . URL::base() . 'storage/zip' . $id);
die;
/*header('Content-length: ' . filesize($filename));
$file = fopen($filename, 'r');
$bufsize = 16 * 1024 * 1024;
while ($buf = fread($file, $bufsize)) {
echo $buf;
$buf = '';
}
fclose($file);*/
}
$count = 0;
$total = 0;
foreach ($files as $file) {
$total += $file['size'];
$count++;
if (!isset($zip)) {
$zip = new ZipArchive();
$zip->open($filename, ZipArchive::CREATE);
}
$zip->addFile(DOCROOT . 'storage/' . $file['attachment_id'], $file['path']);
$zip->setCompressionName($file['path'], ZipArchive::CM_STORE);
DB::delete('downloads')->where('id', '=', $file['id'])->execute();
if ($count >= 100 || $total >= 100 * 1024 * 1024) {
$zip->close();
unset($zip);
break;
}
}
if (isset($zip)) {
$zip->close();
}
$info = DB::select(DB::expr('SUM(`size`) as size'), DB::expr('COUNT(*) as cnt'))->from('downloads')->where('download_id', '=', $id)->execute()->current();
header('Content-type: application/json');
die(json_encode(array('success' => true, 'id' => $id, 'count' => intval($info['cnt']), 'total' => intval($info['size']))));
}
示例3: time
exit;
}
$zipName = time() . "-" . rand(0, 100000);
$zipFilePureName = $zipName . ".zip";
$zipFileName = realpath(TEMP_FOLDER) . "/" . $zipFilePureName;
if (ZIP_METHOD == "BUILD_IN") {
$zip = new ZipArchive();
$zip->open($zipFileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($rootPath), RecursiveIteratorIterator::LEAVES_ONLY);
foreach ($files as $name => $file) {
if (!$file->isDir()) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
if (substr($relativePath, 0, 1) == "." || strpos($relativePath, "/.") !== false) {
continue;
}
$zip->addFile($filePath, $zipDir . $relativePath);
if (version_compare(PHP_VERSION, '7.0.0', '>=')) {
$zip->setCompressionName($filePath, ZipArchive::CM_STORE);
}
}
}
$zip->close();
} elseif (ZIP_METHOD == "LINUX_EXT") {
exec("cd \"" . UPLOAD_FOLDER . "/" . PROJECT_NAME . "/" . $dir . "\" && zip -r0 \"{$zipFileName}\" . -x \".*\"");
} else {
echo "WRONG CONFIG-SETTING";
exit;
}
$downloadName = WEBSITE_DEFAULT_URI . "/temp/" . $zipFilePureName;
header("Location: " . $downloadName);
示例4: unlink
unlink($tmpfile);
}
// generate the ZIP file
$zip = new ZipArchive();
if ($zip->open($tmpfile, ZipArchive::CREATE) !== TRUE) {
exit('failed');
}
$txt = file_get_contents(__FILE__);
$zip->addFromString('entry1.txt', $txt);
$zip->addFromString('entry2.txt', $txt);
$zip->addFromString('dir/entry3.txt', $txt);
$zip->addFromString('entry4.txt', $txt);
$zip->addFromString('entry5.txt', $txt);
$zip->addFromString('entry6.txt', $txt);
$zip->addFromString('entry7.txt', $txt);
var_dump($zip->setCompressionName('entry2.txt', ZipArchive::CM_DEFAULT));
var_dump($zip->setCompressionName('dir/entry3.txt', ZipArchive::CM_STORE));
var_dump($zip->setCompressionName('entry4.txt', ZipArchive::CM_DEFLATE));
var_dump($zip->setCompressionIndex(4, ZipArchive::CM_STORE));
var_dump($zip->setCompressionIndex(5, ZipArchive::CM_DEFLATE));
var_dump($zip->setCompressionIndex(6, ZipArchive::CM_DEFAULT));
if (!$zip->close()) {
exit('failed');
}
// check the ZIP file
$zip = zip_open($tmpfile);
if (!is_resource($zip)) {
exit('failed');
}
while ($e = zip_read($zip)) {
echo zip_entry_name($e) . ': ' . zip_entry_compressionmethod($e) . "\n";
示例5: tempnam
<?php
$str = 'temp';
$dir = tempnam(sys_get_temp_dir(), __FILE__);
unlink($dir);
mkdir($dir);
$archive = new ZipArchive();
$archive->open("{$dir}/comptest.zip", ZipArchive::CREATE);
$archive->addFromString("A.txt", $str);
$archive->addFromString("B.txt", $str);
var_dump($archive->setCompressionIndex(0, ZIPArchive::CM_STORE));
var_dump($archive->setCompressionName("B.txt", ZIPArchive::CM_STORE));
$archive->close();
unlink("{$dir}/comptest.zip");
rmdir($dir);