phpZip一个在服务器端解压的 php 程序,使用附带的压缩工具压缩,可以将文件夹压缩成单个文件,直接在服务器端解压,附带打包下载的工具,可以一次性将服务器上整个文件夹打包下载,在本地解压,程序可以与 WinRAR 一样,可以与 Explorer 集成,方便操作

解决方案 »

  1.   

    把目录压缩成文件后下载。
    压缩用的php程序在phpmyadmin中就有!libraries/zip.lib.php
      

  2.   

    文件如果大的话,不要用libraries/zip.lib.php压缩,会把服务器拖垮的,我用它压过300M的东西,结果服务器差点down掉了,
      

  3.   

    最好的办法是给一个包含所有文件下载地址的页面,然后用flashget下载页面的全部连接
      

  4.   

    说办公室里的人flashget都不会用的
      

  5.   

    那就叫他们一个一个点吧
    或者就教会他们用flashget
      

  6.   

    ftp
    用flashget都能下载一个目录的话,太不安全了
      

  7.   

    还有一种办法,就是用exec来调用rar,压缩文件夹!
    function rar($dir_name){
    $filename = 'rar.bat';
    $real_path = realpath ("");
    $date=date("Y-m-d");
    if (!is_dir($dir_name)):
    echo "你要压缩的文件夹".$dir_name."不存在!";
    endif;
    $file_path =$real_path."\\".$dir_name;
    // 生成备份批处理文件内容
    $somecontent = "path .;C:\Program Files\WinRAR
    rar a ".$dir_name.".rar ".$dir_name."
    $handle = fopen($filename, 'w');
    // 确定文件存在并且可写。
    if (is_writable($filename)):
    if (!$handle):
    echo "读取批处理文件失败!";
    exit;
    endif;
    // 将$somecontent写入到我们打开的文件中。
    if (!fwrite($handle, $somecontent)) :
    echo "修改批处理文件失败!";
    exit;
    endif;
    fclose($handle);
    if (exec("rar.bat")):
    echo "文件夹".$dir_name."压缩成功!";
    exit;
    else:
    echo "文件夹".$dir_name."压缩失败!";
    exit;
    endif;
    exit;
    else:
    echo "批处理文件不能执行,\\n请修改权限";
    exit;
    endif;
    } ;
    //************************************
    以上代码本人写的匆忙,没有测试!见谅!
    应该没有问题,才用此方法写了oracle备份的!
      

  8.   

    $somecontent = "cd ".$file_path."
    path .;C:\Program Files\WinRAR
    rar a ".$dir_name.".rar ".$dir_name.";
    不好意思!
    刚才的批处理文件忘记写一句话了,嘻嘻!
    忘记进入目录!
      

  9.   

    <?php  
    function rar($dir_name){
    $filename = 'bak.bat';
    $real_path = realpath ("");
    $date=date("Y-m-d");
    if (!is_dir($dir_name)):
    echo "你要压缩的文件夹".$dir_name."不存在!";
    exit;
    endif;
    // 生成备份批处理文件内容
    $somecontent = "cd ".$real_path."
    path .;C:\Program Files\WinRAR
    rar a ".$dir_name.".rar ".$dir_name;
    $handle = fopen($filename, 'w');
    // 确定文件存在并且可写
    if (is_writable($filename)):
    if (!$handle):
    echo "读取批处理文件失败!";
    exit;
    endif;
    // 将$somecontent写入到我们打开的文件中。
    if (!fwrite($handle, $somecontent)) :
    echo "修改批处理文件失败!";
    exit;
    endif;
    fclose($handle);
    if (exec("bak.bat")):
    echo "文件夹".$dir_name."压缩成功!";
    exit;
    else:
    echo "文件夹".$dir_name."压缩失败!";
    exit;
    endif;
    exit;
    else:
    echo "批处理文件不能执行,\\n请修改权限";
    exit;
    endif;
    }
    rar("12366");
    ?>
    //***********************************
    经过测试了,嘻嘻.刚才的代码因为马虎,出了不可饶恕的问题,不好意思.不能用rar.bat.这是一个死循环!