Autor Zpráva
blahapet
Profil
Dobrý den,
v eshopu se snažím archivovat faktury (PDF soubory) pomocí souboru zip.lib.php. Vše jde hladce, pokud je ve složce nějakých 30-50 souborů. Pokud jich tam je několikanásobně více, také se ZIP soubor vytvoří, avšak při rozbalení se zjeví hláška "Žádný archív nenalezen" či " "Chyba v komprimovaném souboru".

Nemáte, prosím tušení, co může být na níže uvedeném kódu špatně?

<?php
require("zip.lib.php");
$zip = new zipfile();

$year=$_GET["year"];
$slozka= "pdf/faktury/".$year;

$zipname = "Faktury-".$year."";

$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]");
  
}
  
header("Content-Type: application/x-zip");
header("Content-disposition: attachment; filename=".$zipname.".zip");
echo $zip->file();
?>
scheras
Profil *
Na uvedeném kódu by nemělo být špatně nic, ale knihovna si pravděpodobně vše ukládá do paměti, takže v případě, že máte na hostingu malý memory limit či execution time, skončí akce chybou, kterou Vám možná script nevypíše, pokud nemáte zaplé hlášení chyb.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0