Add unpacking for tar.gz

This commit is contained in:
thiha 2018-02-20 09:31:04 +06:30
parent dd63df8e63
commit 305c634b1c

View file

@ -550,7 +550,50 @@ if (isset($_POST['group'], $_POST['zip']) && !FM_READONLY) {
fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH));
}
// Unpack
// Unpack gz
if (isset($_GET['ungzip']) && !FM_READONLY) {
$ungzip = $_GET['ungzip'];
$ungzip = fm_clean_path($ungzip);
$ungzip = str_replace('/', '', $ungzip);
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
if (!class_exists('PharData')) {
fm_set_msg('Operations with archives are not available', 'error');
fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH));
}
if ($ungzip != '' && is_file($path . '/' . $ungzip)) {
$gzip_path = $path . '/' . $ungzip;
//to folder
$tofolder = '';
if (isset($_GET['tofolder'])) {
$tofolder = pathinfo($gzip_path, PATHINFO_FILENAME);
if (fm_mkdir($path . '/' . $tofolder, true)) {
$path .= '/' . $tofolder;
}
}
$gzipper = new PharData($gzip_path);
$res = $gzipper->extractTo($path);
if ($res) {
fm_set_msg('Archive unpacked');
} else {
fm_set_msg('Archive not unpacked', 'error');
}
} else {
fm_set_msg('File not found', 'error');
}
fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH));
}
// Unpack zip
if (isset($_GET['unzip']) && !FM_READONLY) {
$unzip = $_GET['unzip'];
$unzip = fm_clean_path($unzip);
@ -820,6 +863,7 @@ if (isset($_GET['view'])) {
$filesize = filesize($file_path);
$is_zip = false;
$is_gzip = false;
$is_image = false;
$is_audio = false;
$is_video = false;
@ -833,6 +877,9 @@ if (isset($_GET['view'])) {
$is_zip = true;
$view_title = 'Archive';
$filenames = fm_get_zif_info($file_path);
} elseif ($ext == 'gz') {
$is_gzip = true;
$view_title = 'Archive';
} elseif (in_array($ext, fm_get_image_exts())) {
$is_image = true;
$view_title = 'Image';
@ -904,6 +951,14 @@ if (isset($_GET['view'])) {
UnZip to folder</a></b> &nbsp;
<?php
}
if (!FM_READONLY && $is_gzip) {
$gzip_name = pathinfo($file_path, PATHINFO_FILENAME);
?>
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>&amp;ungzip=<?php echo urlencode($file) ?>"><i class="fa fa-check-circle"></i> UnZip(.gz)</a></b> &nbsp;
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>&amp;ungzip=<?php echo urlencode($file) ?>&amp;tofolder=1" title="UnZip(.gz) to <?php echo fm_enc($gzip_name) ?>"><i class="fa fa-check-circle"></i>
UnZip(.gz) to folder</a></b> &nbsp;
<?php
}
if($is_text && !FM_READONLY) {
?>
<b><a href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&amp;edit=<?php echo urlencode($file) ?>" class="edit-file"><i class="fa fa-pencil-square"></i> Edit</a></b> &nbsp;