X-Git-Url: http://positon.org/gitweb/?p=bizou.git;a=blobdiff_plain;f=plugins%2Ftar%2Ftar.php;fp=plugins%2Ftar%2Ftar.php;h=0000000000000000000000000000000000000000;hp=9d3a46ffa15f0346bf0035a3c011ee94e213d8ec;hb=4a74e0085e76653319bfa9da56e6abf394fe8729;hpb=6b66fbdda7970103a5286e2dbce92816d763aca9 diff --git a/plugins/tar/tar.php b/plugins/tar/tar.php deleted file mode 100644 index 9d3a46f..0000000 --- a/plugins/tar/tar.php +++ /dev/null @@ -1,73 +0,0 @@ -. -*/ - -# do not enable recursive tars by default -$TAR_FLAGS = "--no-recursion"; - -# send content length for browsers to display the progress bar -# note : won't work if the http server uses Chunked transfer encoding (http://en.wikipedia.org/wiki/Chunked_transfer_encoding) -# probably the case with gzip content-encoding. -# For this we need to tar files to /dev/null before the real tar -$SEND_CONTENT_LENGTH = true; - -######################## -$bizouRootFromHere = '../..'; -require "$bizouRootFromHere/config.php"; - -if (isset($_SERVER["PATH_INFO"])) { - $simplePath = $_SERVER["PATH_INFO"]; -} else { - $simplePath = '/'; -} - -if (strpos($simplePath, '..') !== false) die(".. found in url"); - -$realDir = "$bizouRootFromHere/".IMAGES_DIR.$simplePath; - -if ( ! is_dir($realDir) ) { - header("HTTP/1.1 404 Not Found"); - die("Directory Not Found"); -} - -# change to the parent directory -chdir(dirname($realDir)); - -$filesarg = basename($realDir); -# same as escapeshellarg function but this supports utf8 regardless of locale -$filesarg = "'".str_replace("'", "'\\''", $filesarg)."'"; -$filesarg = "$filesarg/*"; - -# compute and send content-length header -if ($SEND_CONTENT_LENGTH) { - $out = exec("tar $TAR_FLAGS --totals -cf /dev/null $filesarg 2>&1", $output, $ret); - preg_match('/^Total bytes written: ([0-9]+) /', $out, $matches); - $totalsize = $matches[1]; - - ($totalsize > 1000 and $ret === 0) or die("Could not tar: $filesarg. Try checking permissions."); - - header("Content-Length: $totalsize"); -} - -# final step : stream the directory content via tar -header('Content-Type: application/x-tar'); -header('Content-Disposition: attachment; filename="'.basename($realDir).'.tar"'); - -passthru("tar $TAR_FLAGS -c $filesarg"); - -?>