Een 'download alles in één zip' functie maken

Voor mijn projectmanagementtool, Kilobit, had ik een simpele tool nodig om geuploade bestanden makkelijk weer te downloaden. Al snel kom je dan uit bij een stukje code wat zip-bestandjes voor je maakt. Snippet-time!

Een tool om zipjes te maken dus. Ik werk zelf met Szajbus' Uploadpack voor CakePHP, dus voor de mensen die daar ook mee werken is het een kwestie van knippen en plakken.

Hoe werkt het?

Eigenlijk is het vrij simpel:

  1. We beginnen met het binnenhalen van alle attachments in ons systeem;
  2. Daarna maken we een nieuwe ZipArchive instance (zit standaard in PHP5);
  3. We loopen door de attachments, en voegen ze toe aan de zip;
  4. Slaan de zip tijdelijk op;
  5. Serveren de zip via de mediaview;
  6. Unlinken het tijdelijke bestand om ruimte vrij te maken;

De code

Ik heb de code als Gist op Github gezet. Mocht je wijzigingen willen doen, dan kun je de code simpelweg forken en weer delen.

Have fun!


Reacties

Er zijn op dit moment geen reacties.