Autor Zpráva
Velda
Profil
Lze nějak vytvořit zip archív a přidat do něj soubory bez toho abych jej musel ukládat na disk (a naslédně jej smazal...). Jde mi o to, že ten zip soubor se vygeneruje a vloží se do stránky a headerem vyzveme prohlížeč ke stáhnutí... Ukládání toho souboru je tedy zbytečné...
EDIT: Spletl jsem si sekci, samozřejmě to patří do sekce PHP... :(
blaaablaaa
Profil
Velda:
Ano, staci googlit napr. vyraz "php zip"
Velda
Profil
blaaablaaa:
Asi shoda okolností: Arogantní tvůrci webu
blaaablaaa
Profil
Velda:
Omlouvam se, neprectl jsem si poradne zadani - pokud by slo o vytvoreni zip archivu (ulozeni zip do souboru), byla by ma odpoved na miste.

Osobne ale nevidim duvod, proc zip neulozit do tmpfile (takze se o mazani starat nemusis). Jinak se to resilo i na stackoverflow
Velda
Profil
blaaablaaa:
Takže něco ve stylu by nešlo...?
$archiv = new ZipArchive();
$archiv->AddFileFromString('text.txt','blablabla');

header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"archiv.zip\"");

$archiv->output();

tu třídu jsem si vymyslel...
__construct
Profil
Velda:
Nie nedá sa to – dalo by sa možno pohrať s použitím streamov php:// tak ako písal blaaablaaa. Inak Ti to nepôjde pretože trieda ZipArchive v deštruktore volá metódu close, ktorá Ti uloží archív do súborového systému.
Kacko
Profil
Zkus Memcached
__construct
Profil
Kacko:
Trieda ZipArchive vie komunikovať iba zo súborovým systémom. Memcache mu nepomôže. Zápisu a mazaniu sa nevyhne – jedine, že by sa pozrel po nejakej inej triede.
__construct
Profil
Velda:
Našiel som túto triedu. Neviem nakoľko je rýchla, ale pravdepodobne to bude najjednoduchšie riešenie.
Velda
Profil
__construct:
Díky moc! :)
No nvm, jestli to zazipování není dělané nějak neefektivně, každopádně ušetří se spousta času tím, že disk je mimo hru, zvlášť když to chci použít pro tkaové mini soubory... Tak díky, přesně tohle jsem ptořeboval :)

__construct, Kacko:
Záměrně jsem nakonec napsal, že jsem si třídu vymyslel... :)

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:

0