Hromadný download obrázků, ZIP?
- walker
- Člen | 5
Zdravím všechny, narazil jsem na menší problém, který pro mě jako začátečníka představuje nepřekonatelnou horu :-), potřebuji vytvořit hromadný download fotek ze své galerie, podle všeho je nutné fotky nejprve zazipovat a pak stáhnout. Podle rady co tu byla před rokem se snažím použít tento návod
vložil jsem tedy obě části z návodu do gallery presentru a změnil pouze druhou část
<?php
public function actionDownload() {
$files_to_zip = array(
'server/uploads/cache/100px-Uzushiogakure.png',
'server/uploads/cache/300px-Rinnegan.png'
);
//if true, good; if false, zip creation failed
$result = self::create_zip($files_to_zip,'my-archive.zip');
}
?>
čím jsem odstranil chybu Call to undefined function create_zip()
no jenže po zavolání download se zip nějak nevytvoří i když se žádná chyba nikde neobjeví, mám měnit ještě něco jiného, nebo sem na něco zapomněl případně mám použít něco jiného? děkuji za radu
- Tomas Jancik
- Člen | 103
mas pravo k zapisu k toho ZIPu?
rekl bych ze se snazis ten zip ulozit do adresare, kde mas aktualni presenter. a tam asi pravo zapisu mit nebudes…
- walker
- Člen | 5
Prozkoušel sem co šlo, a mělo by to být v pořádku, ale pořád nic :/ .. přikládám kód z gallery presentru, script nevypíše žádnou chybu ani debug hlášku, ale soubor nevytvoří, případné rady jak to dál odladit vřele přivítám :-)
cesta k obrázkům prozkoušena a je validní, cesta v $destination prozkoušena všechna možná a soubor nikde :-)
<?php
public function create_zip($files = array(),$destination = '../www/server/uploads/',$overwrite = false) {
//if the zip file already exists and overwrite is false, return false
if(file_exists($destination) && !$overwrite) { return false; }
//vars
$valid_files = array();
//if files were passed in...
if(is_array($files)) {
//cycle through each file
foreach($files as $file) {
//make sure the file exists
if(file_exists($file)) {
$valid_files[] = $file;
} else {
echo 'error';
}
}
}
//if we have good files...
if(count($valid_files)) {
//create the archive
$zip = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
return false;
} else { echo 'error'; }
//add the files
foreach($valid_files as $file) {
$zip->addFile($file,$file);
}
//debug
echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
//close the zip -- done!
$zip->close();
//check to make sure the file exists
return file_exists($destination);
}
else
{
return false;
}
}
public function actionDownload() {
// pro kontrolu jestli je cesta k obrázku správná ;-)
$image = NImage::fromFile('../www/server/uploads/cache/100px-Uzushiogakure.png');
$files_to_zip = array(
'../www/server/uploads/cache/100px-Uzushiogakure.png',
'../www/server/uploads/cache/300px-Rinnegan.png'
);
//if true, good; if false, zip creation failed
$result = self::create_zip($files_to_zip,'my-archive.zip');
//$this->redirect('default');
}
?>
Editoval walker (28. 5. 2012 19:17)