在客户端PC中使用Php复制Dir

时间:2012-03-28 18:11:57

标签: php copy

我试图将任何dir从我的服务器复制到客户端的PC但我不知道怎么可能:S ...作为示例...我有domain.com/Info并且我想要复制该文件夹Info包含内容所以我复制信息和复制到其他文件夹,但在我的服务器...但我不知道,如何复制在客户端的电脑,我的想法是,如果任何客户想要使用我的网络可以复制该文件夹桌面任何想法?我服务器中复制目录的代码是

function full_copy( $source, $target ) {
    if ( is_dir( $source ) ) {
        @mkdir( $target );
        $d = dir( $source );
        while ( FALSE !== ( $entry = $d->read() ) ) {
            if ( $entry == '.' || $entry == '..' ) {
                continue;
            }
            $Entry = $source . '/' . $entry; 
            if ( is_dir( $Entry ) ) {
                full_copy( $Entry, $target . '/' . $entry );
                continue;
            }
            copy( $Entry, $target . '/' . $entry );
        }

        $d->close();
    }else {
        copy( $source, $target );
    }
}
$s = '/Appserv/www/CpVela/Info';
$des = '/Info/';
full_copy($s,$des);

新编辑

我正在尝试制作并下载.zip但我的代码创建的file.zip是空的并且已损坏:S

我的代码就是这个

include "libs/pclzip-2-8-2/pclzip.lib.php";
require("libs/zipfile.php");

/* creates a compressed zip file */
function create_zip($files = array(),$destination = '',$overwrite = false) {
  if(file_exists($destination) && !$overwrite) { return false; }
  $valid_files = array();
  if(is_array($files)) {
    foreach($files as $file) {
      if(file_exists($file)) {
        $valid_files[] = $file;
      }
    }
  }
  if(count($valid_files)) {
    $zip = new ZipArchive();
    if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
      return false;
    }
    foreach($valid_files as $file) {
      $zip->addFile($file,$file);
    }
    $zip->close();
    return file_exists($destination);
  }
  else
  {
    return false;
  }
}
$array = array();
function full_copy( $source, $target ) {

    if ( is_dir( $source ) ) {
        @mkdir( $target );
        //$archivo  = new zipfile();
         $archive = new PclZip('zipfile.zip');
        $d = dir( $source );
        while ( FALSE !== ( $entry = $d->read() ) ) {
            if ( $entry == '.' || $entry == '..' ) {
                continue;
            }
            $Entry = $source . '/' . $entry; 
            if ( is_dir( $Entry ) ) {
                full_copy( $Entry, $target . '/' . $entry );
                continue;
            }
            if(count($array) > 1 ){
                array_push($array, $Entry);
                }else{
                    $array[0] = $Entry;
                    }
        //  $archivo->add_file($Entry,$Entry);
             //$v_list = $archive->add($Entry, PCLZIP_OPT_REMOVE_PATH, 'dev');
            //copy( $Entry, $target . '/' . $entry );
        }

        $d->close();


    }else {
        copy( $source, $target );
    }
}

$s = '/Appserv/www/CpVela/Info';
$des = '/Appserv/www/CpVela/';
full_copy($s,$des);
create_zip($array,'zipfile.zip');
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=zipfile.zip");
echo $zipfile->file(); 

1 个答案:

答案 0 :(得分:2)

您无法通过网络浏览器执行此操作。 PHP在网页执行的服务器上运行,而不是其他任何地方。

如果您想允许客户端执行此操作,则需要使用其他工具或其他语言。或者只是制作一个他可以下载的zip文件。