Skip to content

Commit

Permalink
xoa pclzip
Browse files Browse the repository at this point in the history
  • Loading branch information
linh0804 committed Oct 3, 2024
1 parent d67bb2b commit 54a440b
Show file tree
Hide file tree
Showing 6 changed files with 1,192 additions and 6,822 deletions.
180 changes: 91 additions & 89 deletions file_unzip.php
Original file line number Diff line number Diff line change
@@ -1,89 +1,91 @@
<?php define('ACCESS', true);

include_once 'function.php';

if (IS_LOGIN) {
$title = 'Giải nén tập tin';
$format = $name == null ? null : getFormat($name);

include_once 'header.php';

echo '<div class="title">' . $title . '</div>';

if ($dir == null || $name == null || !is_file(processDirectory($dir . '/' . $name))) {
echo '<div class="list"><span>Đường dẫn không tồn tại</span></div>
<div class="title">Chức năng</div>
<ul class="list">
<li><img src="icon/list.png"/> <a href="index.php' . $pages['paramater_0'] . '">Danh sách</a></li>
</ul>';
} else if (!in_array($format, array('zip', 'jar'))) {
echo '<div class="list"><span>Tập tin không phải zip</span></div>
<div class="title">Chức năng</div>
<ul class="list">
<li><img src="icon/list.png"/> <a href="index.php?dir=' . $dirEncode . $pages['paramater_1'] . '">Danh sách</a></li>
</ul>';
} else {
$dir = processDirectory($dir);
$format = getFormat($name);

if (isset($_POST['submit'])) {
echo '<div class="notice_failure">';

if (empty($_POST['path'])) {
echo 'Chưa nhập đầy đủ thông tin';
} else if (!is_dir(processDirectory($_POST['path']))) {
echo 'Đường dẫn giải nén không tồn tại';
} else if (isPathNotPermission(processDirectory($_POST['path']))) {
echo 'Bạn không thể giải nén tập tin zip tới đường dẫn của File Manager';
} else {
require_once __DIR__ . '/lib/pclzip.class.php';

$zip = new PclZip($dir . '/' . $name);

function callback_pre_extract($event, $header)
{
return isPathNotPermission($header['filename']) == false ? 1 : 0;
}

if ($zip->extract(PCLZIP_OPT_PATH, processDirectory($_POST['path']), PCLZIP_CB_PRE_EXTRACT, 'callback_pre_extract') != false) {
if (isset($_POST['is_delete']))
@unlink($dir . '/' . $name);

goURL('index.php?dir=' . $dirEncode . $pages['paramater_1']);
} else {
echo 'Giải nén tập tin lỗi';
}
}

echo '</div>';
}

echo '<div class="list">
<span class="bull">&bull;</span><span>' . printPath($dir . '/' . $name) . '</span><hr/>
<form action="file_unzip.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '" method="post">
<span class="bull">&bull;</span>Đường dẫn giải nén:<br/>
<input type="text" name="path" value="' . (isset($_POST['path']) ? $_POST['path'] : $dir) . '" size="18"/><br/>
<input type="checkbox" name="is_delete" value="1"' . (isset($_POST['is_delete']) ? ' checked="checked"' : null) . '/> Xóa tập tin zip<br/>
<input type="submit" name="submit" value="Giải nén"/>
</form>
</div>
<div class="title">Chức năng</div>
<ul class="list">
<li><img src="icon/info.png"/> <a href="file.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Thông tin</a></li>
<li><img src="icon/unzip.png"/> <a href="file_viewzip.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Xem</a></li>
<li><img src="icon/download.png"/> <a href="file_download.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Tải về</a></li>
<li><img src="icon/rename.png"/> <a href="file_rename.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Đổi tên</a></li>
<li><img src="icon/copy.png"/> <a href="file_copy.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Sao chép</a></li>
<li><img src="icon/move.png"/> <a href="file_move.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Di chuyển</a></li>
<li><img src="icon/delete.png"/> <a href="file_delete.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Xóa</a></li>
<li><img src="icon/access.png"/> <a href="file_chmod.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Chmod</a></li>
<li><img src="icon/list.png"/> <a href="index.php?dir=' . $dirEncode . $pages['paramater_1'] . '">Danh sách</a></li>
</ul>';
}

include_once 'footer.php';
} else {
goURL('login.php');
}

?>
<?php

define('ACCESS', true);

include_once 'function.php';

if (IS_LOGIN) {
$title = 'Giải nén tập tin';
$format = $name == null ? null : getFormat($name);

include_once 'header.php';

echo '<div class="title">' . $title . '</div>';

if ($dir == null || $name == null || !is_file(processDirectory($dir . '/' . $name))) {
echo '<div class="list"><span>Đường dẫn không tồn tại</span></div>
<div class="title">Chức năng</div>
<ul class="list">
<li><img src="icon/list.png"/> <a href="index.php' . $pages['paramater_0'] . '">Danh sách</a></li>
</ul>';
} elseif (!in_array($format, array('zip', 'jar'))) {
echo '<div class="list"><span>Tập tin không phải zip</span></div>
<div class="title">Chức năng</div>
<ul class="list">
<li><img src="icon/list.png"/> <a href="index.php?dir=' . $dirEncode . $pages['paramater_1'] . '">Danh sách</a></li>
</ul>';
} else {
$dir = processDirectory($dir);
$format = getFormat($name);
if (isset($_POST['submit'])) {
echo '<div class="notice_failure">';

if (empty($_POST['path'])) {
echo 'Chưa nhập đầy đủ thông tin';
} elseif (!is_dir(processDirectory($_POST['path']))) {
echo 'Đường dẫn giải nén không tồn tại';
} elseif (isPathNotPermission(processDirectory($_POST['path']))) {
echo 'Bạn không thể giải nén tập tin zip tới đường dẫn của File Manager';
} else {
$zip = new ZipArchive;

if ($zip->open($dir . '/' . $name) === true) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$fileInfo = $zip->statIndex($i);
$filename = $fileInfo['name'];

if (!isPathNotPermission($filename)) {
$zip->extractTo(processDirectory($_POST['path']), $filename);
}
}
$zip->close();
if (isset($_POST['is_delete'])) {
@unlink($dir . '/' . $name);
}

goURL('index.php?dir=' . $dirEncode . $pages['paramater_1']);
} else {
echo 'Giải nén tập tin lỗi';
}
}

echo '</div>';
}

echo '<div class="list">
<span class="bull">&bull;</span><span>' . printPath($dir . '/' . $name) . '</span><hr/>
<form action="file_unzip.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '" method="post">
<span class="bull">&bull;</span>Đường dẫn giải nén:<br/>
<input type="text" name="path" value="' . (isset($_POST['path']) ? $_POST['path'] : $dir) . '" size="18"/><br/>
<input type="checkbox" name="is_delete" value="1"' . (isset($_POST['is_delete']) ? ' checked="checked"' : null) . '/> Xóa tập tin zip<br/>
<input type="submit" name="submit" value="Giải nén"/>
</form>
</div>
<div class="title">Chức năng</div>
<ul class="list">
<li><img src="icon/info.png"/> <a href="file.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Thông tin</a></li>
<li><img src="icon/unzip.png"/> <a href="file_viewzip.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Xem</a></li>
<li><img src="icon/download.png"/> <a href="file_download.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Tải về</a></li>
<li><img src="icon/rename.png"/> <a href="file_rename.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Đổi tên</a></li>
<li><img src="icon/copy.png"/> <a href="file_copy.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Sao chép</a></li>
<li><img src="icon/move.png"/> <a href="file_move.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Di chuyển</a></li>
<li><img src="icon/delete.png"/> <a href="file_delete.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Xóa</a></li>
<li><img src="icon/access.png"/> <a href="file_chmod.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '">Chmod</a></li>
<li><img src="icon/list.png"/> <a href="index.php?dir=' . $dirEncode . $pages['paramater_1'] . '">Danh sách</a></li>
</ul>';
}

include_once 'footer.php';
} else {
goURL('login.php');
}
29 changes: 25 additions & 4 deletions file_viewzip.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,36 @@
$title .= ':' . $name;

include_once 'header.php';
require_once __DIR__ . '/lib/pclzip.class.php';

$path = isset($_GET['path']) && !empty($_GET['path']) ? processPathZip($_GET['path']) : null;
$dir = processDirectory($dir);
$format = getFormat($name);
$zip = new PclZIP($dir . '/' . $name);
$lists = $zip->listContent();
$zip = new ZipArchive;
$zip->open($dir . '/' . $name);
$lists = [];
$arrays = array('folders' => array(), 'files' => array());

for($i = 0; $i < $zip->numFiles; $i++)
{
$stat = $zip->statIndex($i);
if ($stat['size']) {
$folder = false;
} else {
$folder = true;
}
$lists[$i] = [
"filename" => $zip->getNameIndex($i),
"stored_filename" => $zip->getNameIndex($i),
"size" => $stat['size'],
"compressed_size" => $stat['comp_size'],
"mtime" => $stat['mtime'],
"comment" => "",
"folder" => $folder,
"index" => $stat['index'],
"status" => "ok",
"crc" => $stat['crc']
];
}

if (!$lists) {
echo '<div class="title">' . $title . '</div>
<div class="list">
Expand Down
Loading

0 comments on commit 54a440b

Please sign in to comment.