Autor Zpráva
redpage
Profil *
Dobrý den,

chci si udělat aby se mi všechno stahovalo ze složky fotoalbum. Složky ve fotoalbumu vypadaji nějak takhle:
Nadřazená složka pod id alba
fotoalbum/id_alba/mini.jpg
fotoalbum/id_alba/normal.jpg
Následuje složka detail
fotoalbum/id_alba/detail/1.jpg
fotoalbum/id_alba/detail/2.jpg
.....
-----------------------------------------------------------------
Bohužel jak to mám teď, tak stahuje vše do jednoho zipu a to pouze ze složky, kterou mu musím zadat ručně. Chtěl by jsem docílit Vaší pomocí toho, že by jsem jen kliknul na odkaz a stáhlo by se vše i ve složce jak to je na stránce. Předem všem děkuju za radu nebo za odkaz nějakého hotového řešení.



$datum = Date("d.m.Y H:i:s");
$dir="/home/www/neco.cz/image/1688/";
$dir2="/home/www/neco.cz/www/image/1688/detail/";
$zip = new zipfile();
$adr=Dir($dir);
while ($file=$adr->Read()){
  if (!(($file==".")||($file=="..")||($file=="index.php")||($file=="info.txt"))){
    if (!StrStr($file,"thumb.jpg")) $files[]="$file";
  }
}
$adr->Close();
@Sort($files);
$max=SizeOf($files);
$file_info="";
for ($i=0;$i<$max;$i++){
  $filename=$dir . $files[$i];
  if (@is_dir($filename)){
  } else {
    $f=@FOpen($filename,"rb");
    $add_to_zip = @fread ($f, filesize ($filename));
    //echo "Zip<br>$filename (".filesize($filename).")<br>$add_to_zip<hr>";
    @FClose($f);
    $file_info.="$filename - " . Round((FileSize($filename)/1024),2) . " kB\r\n";
    $zip->addFile($add_to_zip, "$files[$i]");
   }
} // Konec stahovani


// Detailní fotky
$adr2=Dir($dir2);
while ($file2=$adr2->Read()){
  if (!(($file2==".")||($file2=="..")||($file2=="index.php")||($file2=="info.txt"))){
    if (!StrStr($file2,"thumb.jpg")) $files2[]="$file2";
  }
}
$adr2->Close();
@Sort($files2);
$max2=SizeOf($files2);
$file_info2="";
for ($i=0;$i<$max;$i++){
  $filename2=$dir2 . $files2[$i];
  if (@is_dir($filename2)){
  } else {
    $f2=@FOpen($filename2,"rb");
    $add_to_zip2 = @fread ($f2, filesize ($filename2));
    //echo "Zip<br>$filename (".filesize($filename).")<br>$add_to_zip<hr>";
    @FClose($f2);
    $file_info2.="$filename2 - " . Round((FileSize($filename2)/1024),2) . " kB\r\n";
    $zip->addFile($add_to_zip2, "$files2[$i]");
   }
} // Konec stahovani

$info.=$file_info . "\r\n**************************************************\r\n";
$info.="Staženo ze stránek: ".$_SERVER["SERVER_NAME"]."\r\nDatum stažení: ".$datum."\r\n";
$info.="\r\n**************************************************\r\n";
$zip->addFile($info, "!info!.txt");
$zip_name = "Záloha.zip";
header("Content-Type: application/x-zip");
header("Content-disposition: attachment; filename=$zip_name");
echo $zip->file();
AM_
Profil
Jakože tu proměnnou $dir a $dir2 bys chtěl dosadit z nějakého parametru v odkazu? není problém použít _GET, kde v odkazu předáš číslo galerie (stahni.php?gallery=1234 a pak jednoduše v $_GET['gallery'] najdeš číslo galerie).

Jako první ale vyházej z kódu ty zavináče, jejich použití je zde naprosto špatné.
redpage
Profil *
Spis by jsem chtel zadat jako cilovou slozku image a vse co vni najde by stahnul a zabalil presne jak to tam je. To asi nepujde, nebo ano?
Darker
Profil
Prosím, neporušuj pravidlo 8.
Moderátor Joker: Porušující příspěvek vymazán
Pokud chceš stáhnout vše z jedné složky jako ZIP archiv, podívej se, jak se to v PHP dělá.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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