File Manger stuff

This commit is contained in:
Serghey Rodin 2015-10-22 17:26:20 +03:00
commit 13d3fd476b

View file

@ -4,18 +4,25 @@
//define(LISTING_TIMEOUT, 0.000001);
define(LISTING_TIMEOUT, 5);
//echo 'files: ';
//$files = scandir(__DIR__);
//echo '<pre>';
//print_r($files);
//$_REQUEST['sort_field'] = 'size';
$_REQUEST['sort_field'] = 'name';
//$_REQUEST['sort_field'] = 'atime';
//$_REQUEST['sort_field'] = 'mtime';
$_REQUEST['sort_desc'] = 1;
/*
+- copy file / dir [ recursive ]
+- rename(move) file / dir
@ -46,12 +53,24 @@ switch($_REQUEST['action']) {
break;
}
//echo $_GET['sort_field'];
// if(in_array($_GET['sort_field'], $available_sort_fields)){
// echo '1';
// }
/*
upload_file
@ -68,16 +87,17 @@ switch($_REQUEST['action']) {
download file / image
*/
function fm_create_file($filename)
{
function fm_create_file($filename){
if(is_file($filename))
return array('error' => 'file exists', 'code' => 1);
return (bool) fopen($filename, 'w'); // (bool) > !!, sorry
return !!fopen($filename, 'w');
}
function fm_create_dir($dirname)
{
function fm_create_dir($dirname){
if(is_dir($filename))
return array('error' => 'directory exists', 'code' => 1);
@ -85,8 +105,8 @@ function fm_create_dir($dirname)
return mkdir($dirname);
}
function fm_chown($filename, $recursive = 0, $uid = FALSE, $gid = FALSE)
{
function fm_chown($filename, $recursive = 0, $uid = FALSE, $gid = FALSE){
if(is_dir($filename) && $recursive){
$dir_handle = opendir($dir);
while ($item = readdir($dir_handle)){
@ -107,8 +127,8 @@ function fm_chown($filename, $recursive = 0, $uid = FALSE, $gid = FALSE)
}
}
function fm_chmod($filename, $recursive = 0, $mode)
{
function fm_chmod($filename, $recursive = 0, $mode){
if(is_dir($filename) && $recursive){
$dir_handle = opendir($dir);
while ($item = readdir($dir_handle)){
@ -126,8 +146,8 @@ function fm_chmod($filename, $recursive = 0, $mode)
}
}
function fm_delete($filename)
{
function fm_delete($filename){
if(is_dir($filename)){
foreach (
$iterator = new RecursiveIteratorIterator(
@ -148,14 +168,12 @@ function fm_delete($filename)
}
function fm_rename($source, $dest)
{
function fm_rename($source, $dest){
return rename($source, $dest);
}
function fm_copy($source, $dest)
{
function fm_copy($source, $dest){
if(is_dir($source)){
foreach (
$iterator = new RecursiveIteratorIterator(
@ -169,13 +187,14 @@ function fm_copy($source, $dest)
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
}else{
return copy($source, $dest);
}
}
function list_dir()
{
function list_dir(){
$dir_iterator = new RecursiveDirectoryIterator("/path");
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
// could use CHILD_FIRST if you so wish
@ -195,9 +214,12 @@ function list_dir()
echo "\nTotal file size: ", $size, " bytes\n";
}
/// fast removing directory
function rmrf($dir)
{
function rmrf($dir) {
foreach (glob($dir) as $file) {
if (is_dir($file)) {
rmrf("$file/*");
@ -208,6 +230,9 @@ function rmrf($dir)
}
}
function dir_list($dir, $sort = 0)
{
$sort_order_for_filename = SORT_ASC;
@ -249,11 +274,8 @@ function dir_list($dir, $sort = 0)
);
}else{
$listing['timeout_exeeded'] = TRUE;
if (is_dir($filename)) {
$type = 'd';
} else {
$type = '-';
}
if(is_dir($filename)){ $type = 'd';
}else{ $type = '-'; }
$item = array(
'name' => $object,
@ -272,6 +294,7 @@ function dir_list($dir, $sort = 0)
);
}
$listing['count']++;
if($item['type'] == 'd'){
@ -288,6 +311,7 @@ function dir_list($dir, $sort = 0)
}
$listing['time'] = microtime(TRUE) - $start;
if(!$listing['timeout_exeeded']){
if(in_array($_REQUEST['sort_field'], $available_sort_fields)){
if($_REQUEST['sort_desc']){
@ -301,6 +325,7 @@ function dir_list($dir, $sort = 0)
return $listing;
}
function explain_mode($mode)
{
$info = array();
@ -330,3 +355,5 @@ function explain_mode($mode)
return $info;
}
?>