Autor Zpráva
Kubista
Profil
Zdravím,
snažím se zazipovat obsah adresáře, to se mi daří, ale chtěl bych, aby se výsledný "zip soubor" nikam na webu neukládal a nabídl se uživateli přímo na stažení.

Zipování provádím takto:
$zip = new ZipArchive;
$zip -> open($zip_name, ZipArchive::CREATE);
...


Pokud to jde, může mi někdo poradit? Díky moc :-)
Medvídek
Profil
používám toto:

<?php 

require "zip.lib.php";
$zip = new zipfile();
$slozka=$_GET["slozka"];
$adr=Dir("./$slozka/");
while ($file=$adr->Read()){
  if (!(($file==".")||($file=="..")||($file=="index.php"))){
    $files[]="$file";
  }
}
$adr->Close();
@Sort($files);
$max=SizeOf($files);
for ($i=0;$i<$max;$i++){
  $filename="./$slozka/$files[$i]";
  $f=FOpen($filename,"r");
  $add_to_zip = fread ($f, filesize ($filename));
  FClose($f);
  $zip->addFile($add_to_zip, "$files[$i]");
  
}
  
  $info="Staženo ze stránek TOMJANDA dne " . Date("d.m.Y");
  $zip->addFile($info,"_info.txt");
header("Content-Type: application/x-zip");
header("Content-disposition: attachment; filename=".$slozka.".zip");
echo $zip->file();
}
?>
Leo
Profil
"aby se výsledný "zip soubor" nikam na webu neukládal a nabídl se uživateli přímo na stažení"

Ty dve veci se nevylucuji, muzete ho na disk serveru ukladat (uz kvuli snizeni zateze, nemusi se zipovat pokazde znovu) a presto ho nabidnout ke stazeni, Leo
Kubista
Profil
Leo
Dobře, když ho tedy nechám uložen na serveru, tak jak později kontrolovat jestli náhodou někdo nepřidal, nebo nesmazal soubory v adresáři, který bude zazipován? :-)
Leo
Profil
"tak jak později kontrolovat jestli náhodou někdo nepřidal, nebo nesmazal soubory v adresáři, který bude zazipován? :-)"

Stejne jako to musite delat kdyz je chcete zazipovat ne? Proste projdete adresar. Obvykle ma ovsem o souborech na webu prehled nejaky redakcni system, a zmeny se delaji pres nej. Leo
Kubista
Profil
Leo
Díky moc za rady :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: