Skip to content
This repository was archived by the owner on Sep 21, 2018. It is now read-only.

Commit 73f5442

Browse files
author
Tuxity
committed
Improve route for directory downloading ! Still have to add it to client. ref #23
utf 8 characters problem in names should be fixed in php 5.6 with php/php-src#588
1 parent 34fcfd4 commit 73f5442

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

app/controllers/directory.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,25 @@ function get_Size($file) {
7474

7575
$app->get("/api/directory/download/{dirpath}", function (Request $request, $dirpath) use ($app) {
7676

77-
$dirname = pathinfo($dirpath)["basename"];
77+
if (file_exists("{$app['cakebox.root']}{$dirpath}") && is_writable("{$app['cakebox.root']}{$dirpath}/../")) {
7878

79-
$p = new PharData("{$app['cakebox.root']}{$dirpath}/../{$dirname}.tar");
80-
$p->compress(Phar::NONE);
81-
$p->buildFromDirectory("{$app['cakebox.root']}{$dirpath}");
79+
$dirpath_info = pathinfo($dirpath);
80+
$dirname = $dirpath_info["basename"];
81+
82+
if (!file_exists("{$app['cakebox.root']}{$dirpath}/../{$dirname}.tar.inc")) {
83+
file_put_contents("{$app['cakebox.root']}{$dirpath}/../{$dirname}.tar.inc", "Tar creation in progress...");
84+
85+
$p = new PharData("{$app['cakebox.root']}{$dirpath}/../{$dirname}.tar");
86+
$p->compress(Phar::NONE);
87+
$p->buildFromDirectory("{$app['cakebox.root']}{$dirpath}");
88+
89+
unlink("{$app['cakebox.root']}{$dirpath}/../{$dirname}.tar.inc");
90+
}
91+
else
92+
return $app->json("Error: This directory is already under a tar process.");
93+
}
94+
else
95+
return $app->json("Error: Directory doesn't exists or parent directory isn't writable.");
8296

8397
return $app->json("OK");
8498
})

0 commit comments

Comments
 (0)