php web下载网站代码
作者:admin 日期:2014-03-06
PHP代码
- <?php
- /**
- * @author MarkZhao(zhaody901#126.com)
- */
- $dir = dirname(__FILE__).'/';
- // zip and download
- // zip.php?type=zip&dir=subdir
- // unzip deflate way zipped zip file
- // zip.php?type=unzip&name=deflate
- $type = $_GET['type'];
- $type or exit('die no type to do!');
- $name = isset($_GET['name']) ? $_GET['name'].'.zip' : 'zip.zip';
- $subdir = $_GET['dir'];
- $subdir or die('no sub dir to zip');
- set_time_limit(0);
- if ($type=='zip') {
- $zip = new ZipArchive();
- if ($zip->open($name, ZipArchive::Create) === TRUE) {
- $files = map($dir.$subdir);
- foreach ($files as $file) {
- $dir = str_replace('\\', '/', $dir);
- $file = str_replace('\\', '/', $file);
- $zip->addFile($file, '_ROOT_/' . str_replace($dir, '', $file));
- }
- $zip->close();
- down($dir.$name);
- echo 'ok';
- } else {
- echo 'failed';
- }
- } else if ($type=='unzip') {
- $zip = new ZipArchive();
- if ($zip->open($name) === TRUE) {
- $zip->extractTo(dirname(__FILE__).'/');
- $zip->close();
- echo 'ok';
- } else {
- echo 'failed';
- }
- }
- function map($directory) {
- $files = array();
- if (file_exists($directory) && is_dir($directory)) {
- foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file) {
- $files[] = $file->getRealPath();
- }
- }
- return $files;
- }
- function down($file) {
- $filename = $filename ? $filename : basename($file);
- $filesize = filesize($file);
- ob_end_clean();
- @set_time_limit(0);
- if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
- header('Pragma: public');
- } else {
- header('Pragma: no-cache');
- }
- header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- header('Content-Encoding: none');
- header('Content-Length: ' . $filesize);
- header('Content-Disposition: attachment; filename=' . $filename);
- header('Content-Type: ' . $filetype);
- readfile($file);
- exit;
- }
1. 打包代码, 并直接通过浏览器下载
2. 解压zip文件到服务器
评论: 0 | 引用: 0 | 查看次数: 2938
发表评论
广告位