#1 2010-06-25 17:25:16

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Týmto chcem uľahčiť prácu všetkým ktorý používajú vlastné inštalácie CMS.

Je zbytočné kopírovať celý CMS ktorý obsahuje viac ako 10000 súborov na FTP.
Jednoduchšie je uploadovať jeden ZIP súbor a rozbaliť ho priamo na servery.

Vytvorte si súbor unzip.php s týmto obsahom:

<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>UnZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><?php $writable = (is_writable('.')); ?><h2><small>[<a href='./unzip.php'>obnoviť</a>]</small> Dostupné zip súbory <small>(v priečinku - <span class="message <?php echo ($writable) ? 'ok' : 'error' ?>"><?php echo ($writable) ? 'je' : 'nie je' ?> zapisovateľný</span>)</small>:</h2><?php
$file_list = array();
if ($handler = opendir(dirname(__FILE__))) {
	$i = 0;
	while (false !== ($filename = readdir($handler))) {
		if (!is_dir($filename) AND 'zip' == substr($filename, -3, 3)) {
			$file_list[$i]['name'] = $filename;
			$file_list[$i]['time'] = date('r',fileCTime($filename));
			$file_list[$i]['size'] = round(fileSize($filename)/(1024*1024),2) . ' MB';
			$i++;
		}
	}
	closedir($handler);
}
if (!count($file_list)) { ?><p>Žiadne súbory k rozbaleniu!</p><?php
} else {
	echo '<table><thead><tr><th>Názov<th>Veľkosť<th>Čas (vytvorenia)<th> <tbody>';
	
	foreach ($file_list as $file) {
		echo "<tr><th>$file[name]"
			. " <td> $file[size]"
			. " <td> $file[time]"
			. " <td> <form action='./unzip.php' method='post'><input type='hidden' name='unpack' value='$file[name]'><input type='submit' value='Rozbaliť'></form>";
	}
	echo '</table>';
}
if (isset($_POST['unpack'])) {
	$file = $_POST['unpack']; ?><h2>Výsledky <small>(rozbaľovanie <?php echo $file; ?>)</small></h2><?php
	if (!is_file($file)) { ?><p class="message error">Súbor <em><b><?php echo $file ?></b></em> sa nenašiel.</p><?php
	} elseif (unzip($file)) { ?><p class="message ok">Súbor <em><b><?php echo $file ?></b></em> rozbalený.</p><?php
	} else { ?><p class="message error">Rozbaľovanie súboru <em><b><?php echo $file ?></b></em> zlyhalo.</p><?php
	}
} ?></body></html><?php 
function unzip($src_file, $dest_dir=true, $create_zip_name_dir=true, $overwrite=true)
{
	if(function_exists("zip_open")) {
		if(!is_resource(zip_open($src_file))) { 
			$src_file=dirname($_SERVER['SCRIPT_FILENAME'])."/".$src_file; 
		}
		if (is_resource($zip = zip_open($src_file))) {			
			$splitter = ($create_zip_name_dir === true) ? "." : "/";
			if ($dest_dir === false) 
				$dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
			else 
			  $dest_dir = "";
			create_dirs($dest_dir);
			while ($zip_entry = zip_read($zip)) {
			$pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");	
			if ($pos_last_slash !== false) {
				create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));
			}
			if (zip_entry_open($zip,$zip_entry,"r")) {
				$file_name = $dest_dir.zip_entry_name($zip_entry);
				if ($overwrite === true || $overwrite === false && !is_file($file_name)) {
					$fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
					if(!is_dir($file_name))			
					file_put_contents($file_name, $fstream );
					if(file_exists($file_name)) {
						chmod($file_name, 0777);
						$results[] = array($file_name, true);
					}
					else {
						$results[] = array($file_name, false);
					}
				}
				zip_entry_close($zip_entry);
			}	
			}
			zip_close($zip);
			echo '<ol class="messages">';
			foreach ($results as $r) {
				$msg_type = ($r[1]) ? 'ok' : 'error';
				$msg = ($r[1]) ? 'Úspešné' : 'Neúspešné';
				echo "<li class='message $msg_type'><em>$msg</em> - <a href='$r[0]'>$r[0]</a>";
			}
			echo '</ol>';
			if ($msg_type == 'ok') return true; else return false;
		}
		else {
			return false;
		}
		return true;
	}
	else
	{
		if(version_compare(phpversion(), "5.2.0", "<"))
		$infoVersion="(PHP 5.2.0 alebo vyššiu)";
		echo "Je potrebné nainštalovať/povoliť php_zip.dll rozšírenie $infoVersion"; 
	}
}
function create_dirs($path)
{
	if (!is_dir($path)) {
		$directory_path = "";
		$directories = explode("/",$path);
		array_pop($directories);

		foreach($directories as $directory) {
			$directory_path .= $directory."/";
			if (!is_dir($directory_path)) {
				mkdir($directory_path);
				chmod($directory_path, 0777);
			}
		}
	}
}
?>

nakopírujte ho na FTP spolu zo ZIP archívom Vášho webu.
Otvorte si ho cez http://www.vasadomena.tld/unzip.php a kliknite na Rozbaliť.

- - -

Ako si urobiť zálohu celého webu prípadne nejakého adresára?

Jednoducho, vytvorte si súbor zip.php s týmto obsahom:

<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><h2><small>[<a href='./zip.php'>obnoviť</a>]</small></h2>
<?php

  $action = $_POST[action]; $directory = $_POST[directory]; $zipfile = $_POST[zipfile];

	echo '<table><thead><tr><th> <th>Priečinok<th>Názov archívu<th> <tbody>';
	echo "<tr><th><form action='./zip.php' method='post'>"
		 . " <td><input type='text' name='directory' value='.'>*"
		 . " <td><input type='text' name='zipfile' value='".date("Y-m-d-H-i-s").".zip'>"
		 . " <td><input type='hidden' name='action' value='start'><input type='submit' value='Zbaliť'></form>";
	echo '</table>';

if ($action == "start") {

$filenames = array();

function browse($dir) {
global $filenames;
    if ($handle = opendir($dir)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != ".." && is_file($dir.'/'.$file)) {
                $filenames[] = $dir.'/'.$file;
            }
            else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file)) {
                browse($dir.'/'.$file);
            }
        }
        closedir($handle);
    }
    return $filenames;
}

browse($directory);

$zip = new ZipArchive();

if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) {
    exit("cannot open <$zipfile>\n");
}

?><h2>Výsledky <small>(zbaľovania)</small></h2><?php
echo '<ol class="messages">';
foreach ($filenames as $filename) {
		echo "<li class='message ok'>Súbor <em><b>$filename</b></em> pridaný.";
    $zip->addFile($filename,$filename);
}
echo '</ol>';

if (($zip->status == 0)&($zip->numFiles != 0)) echo "<p class='message ok'>Celkovo pridaných <em><b>" . $zip->numFiles . "</b></em> súborov v archíve <em><b>" . $zipfile . "</b></em>.</p>";
else echo "<p class='message error'>Súbory sa nepodarilo zbaliť!</p>";
$zip->close();

}

?></body></html>

Otvorte si ho cez http://www.vasadomena.tld/zip.php.
Zvoľte adresár ktorý chcete archivovať a názov archívu a kliknite na Zbaliť *.
* v prípade že chcete archivovať všetko čo je v danej zložke kde ste súbor zip.php umiestnili ponechajte znak . (bodka) namiesto názvu adresára.


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#2 2010-07-22 16:39:53

berkas1
Člen
Místo: Brno
Registrován: 2009-12-05
Příspěvky: 605
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

ahoj, hezký návod:)

ale nestačila by fce unzip na webftp?

Offline

#3 2010-07-22 16:46:36

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Z mojimi skúsenosťami s webftp nemám dobré skúsenosti. Skript beží strašne dlho a nie vždy úspešne skončí. Je vždy na uvážení užívateľa aký spôsob zvolí wink


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#4 2010-07-22 16:52:14

berkas1
Člen
Místo: Brno
Registrován: 2009-12-05
Příspěvky: 605
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

fackovec napsal:

Z mojimi skúsenosťami s webftp nemám dobré skúsenosti. Skript beží strašne dlho a nie vždy úspešne skončí. Je vždy na uvážení užívateľa aký spôsob zvolí wink

jasně, jenom se ptám smile
já jen, že být začátečníkem a uvidět ten zdrojovej kód, tak se leknu a "uteču"  big_smile

Offline

#5 2010-07-22 16:54:06

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Zas tak zložitý ten kód nieje, či? wink


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#6 2010-08-01 22:29:53

Videa.Cekuj.Net
Člen
Registrován: 2010-07-31
Příspěvky: 85

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

big_smile  super navod smile

Offline

#7 2010-08-25 13:09:25

martin00
Člen
Registrován: 2010-08-25
Příspěvky: 4

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Tak jsem to provedl podle návodu a zpakoval si web do zip archivu - ale kde je?? nemůžu ho najít. Do které složky se to zpakuje?  :?:  díky za odpověd

Offline

#8 2010-08-25 13:22:13

martin00
Člen
Registrován: 2010-08-25
Příspěvky: 4

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

martin00 napsal:

Tak jsem to provedl podle návodu a zpakoval si web do zip archivu - ale kde je?? nemůžu ho najít. Do které složky se to zpakuje?  :?:  díky za odpověd

Tak už jsem je objevil - nevím proč ale ze začátku mi ty soubory prostě f-týpko nechtělo najít nebo zobrazit i když jsem restartnul spojení. Každopádně návod viz. výše funguje výborně. Díky

Offline

#9 2010-08-25 20:08:42

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Záleží ako si nastavíš spojenie, nesmie byť povolené používanie vyrovnávacej pamäte pre už zobrazené priečinky wink tak ti pri opätovnom načítaní zobrazí ZIP súbor podľa toho aký si si zvolil jeho názov lol


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#10 2011-02-16 09:05:06

peeeeta
Člen
Registrován: 2010-08-29
Příspěvky: 365
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Jen jelikož soubor na rozzipováni souborů tu je ve slovenštině.Tak mě tak napadlo, že jej jen hodím do češtiny a tak jej tady máte v příloze.Přeji hodně štěstí lidi.A doufám že to někomu udělá radost smile

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Rozzipování CMS</title>
</head>
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>UnZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><?php $writable = (is_writable('.')); ?><h2><small>[<a href='./unzip.php'>Obnovit</a>]</small> Dostupné zip soubory <small>(soubor - <span class="message <?php echo ($writable) ? 'ok' : 'error' ?>"><?php echo ($writable) ? 'je' : 'není' ?> zapisovatelný</span>)</small>:</h2><?php
$file_list = array();
if ($handler = opendir(dirname(__FILE__))) {
   $i = 0;
   while (false !== ($filename = readdir($handler))) {
      if (!is_dir($filename) AND 'zip' == substr($filename, -3, 3)) {
         $file_list[$i]['name'] = $filename;
         $file_list[$i]['time'] = date('r',fileCTime($filename));
         $file_list[$i]['size'] = round(fileSize($filename)/(1024*1024),2) . ' MB';
         $i++;
      }
   }
   closedir($handler);
}
if (!count($file_list)) { ?><p>Žádné soubory k rozbalení!</p><?php
} else {
   echo '<table><thead><tr><th>Název<th>Velikost<th>Čas (vytvoření)<th> <tbody>';
   
   foreach ($file_list as $file) {
      echo "<tr><th>$file[name]"
         . " <td> $file[size]"
         . " <td> $file[time]"
         . " <td> <form action='./unzip.php' method='post'><input type='hidden' name='unpack' value='$file[name]'><input type='submit' value='Rozbaliť'></form>";
   }
   echo '</table>';
}
if (isset($_POST['unpack'])) {
   $file = $_POST['unpack']; ?><h2>Výsledky <small>(rozbalování <?php echo $file; ?>)</small></h2><?php
   if (!is_file($file)) { ?><p class="message error">Soubor <em><b><?php echo $file ?></b></em> nebyl nalezen.</p><?php
   } elseif (unzip($file)) { ?><p class="message ok">Soubor <em><b><?php echo $file ?></b></em> byl rozbalen.</p><?php
   } else { ?><p class="message error">Rozbalování souboru <em><b><?php echo $file ?></b></em> selhalo.</p><?php
   }
} ?></body></html><?php 
function unzip($src_file, $dest_dir=true, $create_zip_name_dir=true, $overwrite=true)
{
   if(function_exists("zip_open")) {
      if(!is_resource(zip_open($src_file))) { 
         $src_file=dirname($_SERVER['SCRIPT_FILENAME'])."/".$src_file; 
      }
      if (is_resource($zip = zip_open($src_file))) {         
         $splitter = ($create_zip_name_dir === true) ? "." : "/";
         if ($dest_dir === false) 
            $dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
         else 
           $dest_dir = "";
         create_dirs($dest_dir);
         while ($zip_entry = zip_read($zip)) {
         $pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");   
         if ($pos_last_slash !== false) {
            create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));
         }
         if (zip_entry_open($zip,$zip_entry,"r")) {
            $file_name = $dest_dir.zip_entry_name($zip_entry);
            if ($overwrite === true || $overwrite === false && !is_file($file_name)) {
               $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
               if(!is_dir($file_name))         
               file_put_contents($file_name, $fstream );
               if(file_exists($file_name)) {
                  chmod($file_name, 0777);
                  $results[] = array($file_name, true);
               }
               else {
                  $results[] = array($file_name, false);
               }
            }
            zip_entry_close($zip_entry);
         }   
         }
         zip_close($zip);
         echo '<ol class="messages">';
         foreach ($results as $r) {
            $msg_type = ($r[1]) ? 'ok' : 'error';
            $msg = ($r[1]) ? 'Úspešné' : 'Neúspešné';
            echo "<li class='message $msg_type'><em>$msg</em> - <a href='$r[0]'>$r[0]</a>";
         }
         echo '</ol>';
         if ($msg_type == 'ok') return true; else return false;
      }
      else {
         return false;
      }
      return true;
   }
   else
   {
      if(version_compare(phpversion(), "5.2.0", "<"))
      $infoVersion="(PHP 5.2.0 alebo vyšší)";
      echo "Je potřebné nainstalovat/povolit php_zip.dll rozšíření $infoVersion"; 
   }
}
function create_dirs($path)
{
   if (!is_dir($path)) {
      $directory_path = "";
      $directories = explode("/",$path);
      array_pop($directories);

      foreach($directories as $directory) {
         $directory_path .= $directory."/";
         if (!is_dir($directory_path)) {
            mkdir($directory_path);
            chmod($directory_path, 0777);
         }
      }
   }
}
?>
<body>
</body>
</html>

Pokud naleznete nějakou nesrovnalost klidně mi ji ohlaste.

Offline

#11 2011-02-16 16:45:26

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

smile ja si myslím, že to je zbytočné aj keď by to bolo v angličtine. To je iba na súkromné účely (určite by sme nechceli, aby nám tam niekto sťahoval celú našu stránku alebo rozbaľoval ZIP súbory priamo na stránke)
-- môj názor --

ale nikdy nevieme, možno to niekomu zachráni život lol


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#12 2011-02-16 17:58:35

peeeeta
Člen
Registrován: 2010-08-29
Příspěvky: 365
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Ale tak když už jsem to měl v pc tak jsem to sem dal.Co kdyby se to někomu hodilo wink

Offline

#13 2011-02-16 20:32:20

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Ja osobne keď niečo balím alebo rozbaľujem tak daný súbor vymažem, čiže v akom jazyku je je jedno. Ide predsa len o to jedno kliknutie ;o)


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#14 2011-02-16 20:47:12

peeeeta
Člen
Registrován: 2010-08-29
Příspěvky: 365
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

To ano ale jak už jsem říkal každý není takový expert jako rádcové Endory.A tak jsem si řek , že to sem mohu nahodit.teda doufám že to tady nepřekáží XD

Offline

#15 2011-02-16 20:50:10

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Neprekáža, tu sa môže vyjadriť každý  wink


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#16 2011-03-05 21:25:30

brits
Člen
Registrován: 2011-01-25
Příspěvky: 23
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Prosim vas skusil som ten zip.php dal som to zbalit zbalilo to a ten subor som nenasiel kde ho mam hladat?

Offline

#17 2011-03-05 22:09:56

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Súbor sa nachádza v rovnakom adresári v ktorom si mal zip.php a jeho názov je taký ako si ho pomenoval. Samozrejme ak stránka bola väčšia ako sa zvládlo, tj cca nad 300 MB tak to je vo viacerých súboroch z inými názvami. Samozrejme takéto súbory sú nepoužiteľné.


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#18 2011-03-16 19:10:08

peeeeta
Člen
Registrován: 2010-08-29
Příspěvky: 365
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

JF napsal:

Ako si urobiť zálohu celého webu prípadne nejakého adresára?

Jednoducho, vytvorte si súbor zip.php s týmto obsahom:

<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><h2><small>[<a href='./zip.php'>obnoviť</a>]</small></h2>
<?php

  $action = $_POST[action]; $directory = $_POST[directory]; $zipfile = $_POST[zipfile];

	echo '<table><thead><tr><th> <th>Priečinok<th>Názov archívu<th> <tbody>';
	echo "<tr><th><form action='./zip.php' method='post'>"
		 . " <td><input type='text' name='directory' value='.'>*"
		 . " <td><input type='text' name='zipfile' value='".date("Y-m-d-H-i-s").".zip'>"
		 . " <td><input type='hidden' name='action' value='start'><input type='submit' value='Zbaliť'></form>";
	echo '</table>';

if ($action == "start") {

$filenames = array();

function browse($dir) {
global $filenames;
    if ($handle = opendir($dir)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != ".." && is_file($dir.'/'.$file)) {
                $filenames[] = $dir.'/'.$file;
            }
            else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file)) {
                browse($dir.'/'.$file);
            }
        }
        closedir($handle);
    }
    return $filenames;
}

browse($directory);

$zip = new ZipArchive();

if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) {
    exit("cannot open <$zipfile>\n");
}

?><h2>Výsledky <small>(zbaľovania)</small></h2><?php
echo '<ol class="messages">';
foreach ($filenames as $filename) {
		echo "<li class='message ok'>Súbor <em><b>$filename</b></em> pridaný.";
    $zip->addFile($filename,$filename);
}
echo '</ol>';

if (($zip->status == 0)&($zip->numFiles != 0)) echo "<p class='message ok'>Celkovo pridaných <em><b>" . $zip->numFiles . "</b></em> súborov v archíve <em><b>" . $zipfile . "</b></em>.</p>";
else echo "<p class='message error'>Súbory sa nepodarilo zbaliť!</p>";
$zip->close();

}

?></body></html>

Otvorte si ho cez http://www.vasadomena.tld/zip.php.
Zvoľte adresár ktorý chcete archivovať a názov archívu a kliknite na Zbaliť *.
* v prípade že chcete archivovať všetko čo je v danej zložke kde ste súbor zip.php umiestnili ponechajte znak . (bodka) namiesto názvu adresára.

Prosím jak můžu vybrat jen několik složek který chci do .zip souboru zařadit, třeba složka1, složka 23 a složka 54
Děkuji za radu

Offline

#19 2011-03-16 20:28:54

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Pomocou toho môjho skriptu je možné vybrať len jednu, nerobil som to tak obšírne aby šlo si vyberať  wink  musíš si to nakódovať.


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#20 2011-03-16 23:49:00

peeeeta
Člen
Registrován: 2010-08-29
Příspěvky: 365
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Nevím zdali se svými znalostmi to dokáži dát smile

Offline

#21 2011-03-17 06:05:02

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

Ak budem mať chvíľku tak to možno i dokódujem  wink


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

#22 2011-03-17 08:38:31

peeeeta
Člen
Registrován: 2010-08-29
Příspěvky: 365
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

JF napsal:

Ak budem mať chvíľku tak to možno i dokódujem  wink

Jj díky moc smile

Offline

#23 2011-08-06 01:43:08

JF
Endora rádce
Místo: Plzeň
Registrován: 2010-06-22
Příspěvky: 10,775
Web

Re: Návod ako rozbaliť/zabaliť súbory na FTP cez HTTP

jediný dôvod, nemáš na FTP index.html alebo index.php prípadne máš ale nie malými písmenami smile


Ján Fačkovec - Helpdesk Endora.cz
Email: jan.fackovec(zavináč)endora.cz, Web: www.endora.cz
PHPinfo různých verzií!

Offline

Zápatí

Založeno na FluxBB | CZ a SK