get($request, $id, true); $medias = $this->database->query('SELECT `uploads`.`filename`, `uploads`.`storage_path` FROM `uploads` WHERE `user_id` = ?', $user->id); set_time_limit(0); ob_end_clean(); $options = new Archive(); $options->setSendHttpHeaders(true); $zip = new ZipStream($user->username.'-'.time().'-export.zip', $options); $filesystem = $this->storage; foreach ($medias as $media) { try { $zip->addFileFromStream($media->filename, $filesystem->readStream($media->storage_path)); } catch (FileNotFoundException $e) { $this->logger->error('Cannot export file', ['exception' => $e]); } } $zip->finish(); exit(0); } }