1413 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			1413 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			HTML
		
	
	
| <!--IconValuesStart-->
 | ||
| {
 | ||
|     "music":"musical-notes",
 | ||
|     "video":"logo-youtube",
 | ||
|     "img":"image",
 | ||
|     "office":"paper",
 | ||
|     "txt":"clipboard",
 | ||
|     "zip":"filing",
 | ||
|     "iso":"disc",
 | ||
|     "apk":"logo-android",
 | ||
|     "exe":"logo-windows",
 | ||
|     "default":"document"
 | ||
| }
 | ||
| <!--IconValuesEnd-->
 | ||
| <!DOCTYPE html>
 | ||
| <html lang="<!--constStr@language-->">
 | ||
| <head>
 | ||
|     <title><!--Title--></title>
 | ||
|     <meta charset=utf-8>
 | ||
|     <meta http-equiv=X-UA-Compatible content="IE=edge">
 | ||
|     <meta name=viewport content="width=device-width,initial-scale=1">
 | ||
|     <meta name="keywords" content="<!--Keywords-->">
 | ||
|     <meta name="description" content="<!--Description-->">
 | ||
|     <link rel="icon" href="<!--base_disk_path-->favicon.ico" type="image/x-icon" />
 | ||
|     <link rel="shortcut icon" href="<!--base_disk_path-->favicon.ico" type="image/x-icon" />
 | ||
|     <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet">
 | ||
|     <script src="http://upcdn.b0.upaiyun.com/libs/jquery/jquery-2.0.2.min.js"></script>
 | ||
| 
 | ||
|     <style>
 | ||
|     a {
 | ||
|         text-decoration: none;
 | ||
|         color: dimgray;
 | ||
|     }
 | ||
|     .title{
 | ||
|         text-align: center;
 | ||
|         font-family: '-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif',Helvetica,Arial,sans-serif;
 | ||
|         }
 | ||
|         ion-icon{vertical-align: -0.1em;}
 | ||
|     body {
 | ||
|         <!--BackgroundStart-->
 | ||
|     background-image: url('<!--BackgroundUrl-->');
 | ||
|     background-size: cover;
 | ||
|     background-repeat: no-repeat;
 | ||
|     height: 100%;
 | ||
|     <!--BackgroundEnd-->
 | ||
| }
 | ||
|         
 | ||
| </style>
 | ||
|     <!--customCss-->
 | ||
| </head>
 | ||
| 
 | ||
| <body>
 | ||
|     <div style="backgroudn-color:#aaa; z-index:-999; height:100vh; width:100%; position:absolute;opacity:0.5;"></div>
 | ||
|     <div id="top-div">
 | ||
|          
 | ||
|     </div>
 | ||
| <!--NeedUpdateStart-->
 | ||
|     <div style='position:absolute;'><font color='red'><!--constStr@NeedUpdate--></font></div>
 | ||
| <!--NeedUpdateEnd-->
 | ||
|     <h1 class="title" id="title">
 | ||
|         <a href="<!--base_path-->" class="text-muted"><!--Sitename--></a>
 | ||
|     </h1>
 | ||
| <!--MultiDiskAreaStart-->
 | ||
|     <div class="list-wrapper" id="more-disk-div">
 | ||
|         <div class="">
 | ||
|             <div class="list-header-container">
 | ||
|                 <div class="container text-center rounded my-3 py-3">
 | ||
|     <!--MultiDisksStart-->
 | ||
|                     <div class="btn-group" role="group">
 | ||
|                         <a href="<!--MultiDisksUrl-->" class="btn btn-secondary" <!--MultiDisksNow-->><!--MultiDisksName--></a>
 | ||
|     <!--MultiDisksEnd-->
 | ||
|     <!--LoginStart-->
 | ||
|     <button type="button" class="btn btn-secondary" data-toggle="modal" data-target="#exampleModal">
 | ||
|                         <!--constStr@Login-->
 | ||
|                     </button>
 | ||
|                     <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
 | ||
|     <div class="modal-dialog" role="document">
 | ||
|       <div class="modal-content">
 | ||
|         <div class="modal-header">
 | ||
|           <h5 class="modal-title" id="exampleModalLabel"><!--constStr@Login--></h5>
 | ||
|           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|             <span aria-hidden="true">×</span>
 | ||
|           </button>
 | ||
|         </div><form action="?admin" method="post">
 | ||
|         <div class="modal-body">
 | ||
|             <input class="form-control" id="login_input" name="password1" type="password" placeholder="<!--constStr@InputPassword-->">
 | ||
|         </div>
 | ||
|         <div class="modal-footer">
 | ||
|                   <input class="btn btn-primary" type="submit" value="<!--constStr@Login-->"></button>
 | ||
|         </form>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|     </div>
 | ||
|     <!--LoginEnd-->
 | ||
|     <!--AdminStart-->
 | ||
|             <div class="dropdown btn-group btn-secondary">
 | ||
|                 <a class="btn btn-secondary dropdown-toggle" href="#" type="button"  role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | ||
|                     <ion-icon name="construct"></ion-icon><!--constStr@Operate-->
 | ||
|                 </a>
 | ||
|                 <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
 | ||
|     <!--IsFolderStart-->
 | ||
|                     <a  class="dropdown-item" data-toggle="modal" data-target="#NewFileModal"><ion-icon name="create"></ion-icon><!--constStr@Create--></a>
 | ||
|                     <a  class="dropdown-item" data-toggle="modal" data-target="#exampleencrypt" onclick="document.getElementById('encrypt_hidden').value=''"><ion-icon name="lock"></ion-icon><!--constStr@Encrypt--></a>
 | ||
|                         
 | ||
|     
 | ||
|     <!--IsFolderEnd-->
 | ||
|                     <a class="dropdown-item" href="<!--IsPreview?-->setup"><ion-icon name="settings"></ion-icon><!--constStr@Setup--></a>
 | ||
|                     <a class="dropdown-item" onclick="logout();"><ion-icon name="log-out"></ion-icon><!--constStr@Logout--></a>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|     <!--AdminEnd-->
 | ||
|         </div>
 | ||
|                 <select class="btn btn-secondary" name="language" onchange="changelanguage(this.options[this.options.selectedIndex].value)">
 | ||
|     <!--SelectLanguageStart-->
 | ||
|             <option value="<!--SelectLanguageKey-->" <!--SelectLanguageSelected-->><!--SelectLanguageValue--></option>
 | ||
|     <!--SelectLanguageEnd-->
 | ||
|         </select>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     
 | ||
| <!--MultiDiskAreaEnd-->
 | ||
| <!--HeadomfStart-->
 | ||
|     <div class="list-wrapper" id="head-om-div">
 | ||
|         <div class="list-container">
 | ||
|             <div class="list-header-container">
 | ||
|                 <div class="readme">
 | ||
|                     <div class="customfile" id="head-om">
 | ||
|                         <!--HeadomfContent-->
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| <!--HeadomfEnd-->
 | ||
| <!--HeadmdStart-->
 | ||
|     <div class="list-wrapper" id="head-div">
 | ||
|         <div class="list-container">
 | ||
|             <div class="list-header-container">
 | ||
|                 <div class="readme">
 | ||
|                     <div class="markdown-body" id="head">
 | ||
|                         <textarea id="head-md" style="display:none;"><!--HeadmdContent--></textarea>
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| <!--HeadmdEnd-->
 | ||
| <!--ListStart-->
 | ||
|     <div class="container text-left rounded my-3 py-3 border" id="list-div">
 | ||
|         <div class="list-container">
 | ||
|             <div class="list-header-container alert alert-secondary">
 | ||
| 
 | ||
| <!--BackArrowStart-->
 | ||
| 
 | ||
| <ul class="nav nav-pills">
 | ||
|   <li class="nav-item">
 | ||
|   <a href="<!--BackArrowUrl-->" class="nav-item active">
 | ||
|                     <ion-icon name="arrow-back"></ion-icon>
 | ||
|   </a>
 | ||
|   </li>
 | ||
|   <li class="nav-item">
 | ||
|            
 | ||
| <!--BackArrowEnd-->
 | ||
| <a class="nav-item" ><!--Path--></a>
 | ||
|   </li>
 | ||
| </ul>     
 | ||
|             </div>
 | ||
| 
 | ||
|             <div class="list-body-container border">
 | ||
| <!--EncryptedStart-->
 | ||
| 
 | ||
| 
 | ||
|                 <div style="padding:20px">
 | ||
| 	            <center>
 | ||
| 	                <form action="" method="post">
 | ||
| 		            <input name="password1" type="password" placeholder="<!--constStr@InputPassword-->">
 | ||
| 		            <input type="submit" value="<!--constStr@Submit-->">
 | ||
| 	                </form>
 | ||
|                 </center>
 | ||
|                 </div>
 | ||
| <!--EncryptedEnd-->
 | ||
| 
 | ||
| 
 | ||
| <!--GuestUploadStart-->
 | ||
| <div id="upload_div" class="input-group p-3">
 | ||
|     <div id="upload_btns" >
 | ||
|       <select class="form-control" onchange="document.getElementById('upload_file').webkitdirectory=this.value;">
 | ||
|         <option value=""><!--constStr@UploadFile--></option>
 | ||
|         <option value="1"><!--constStr@UploadFolder--></option>
 | ||
|       </select>
 | ||
|     </div>
 | ||
|     <div class="custom-file">
 | ||
|       <input onchange="showFileName()" type="file" class="custom-file-input" id="upload_file" aria-describedby="upload_submit" multiple="multiple" name="upload_filename">
 | ||
|       <label id="filename_label"  class="custom-file-label" for="upload_file"><!--constStr@FileSelected--></label>
 | ||
|     </div>
 | ||
|     <div class="input-group-append">
 | ||
|       <button class="btn btn-outline-secondary" onclick="preup();" type="button" id="upload_submit"><!--constStr@Upload--></button>
 | ||
|     </div>
 | ||
| </div>
 | ||
| <div id="uploading_div" class="input-group p-3"></div>
 | ||
| 
 | ||
|  <script> 
 | ||
|  function showFileName(){
 | ||
|      var file = document.getElementById("upload_file").files;
 | ||
|      //取得file集合
 | ||
| 
 | ||
|          var fileNameAll = "";
 | ||
|             for(var i = 0; i < file.length; i++){
 | ||
|                 fileNameAll += file[i].name + ";";
 | ||
|             }
 | ||
|             fileNameAll = fileNameAll.substr(0, fileNameAll.length - 1);
 | ||
| 
 | ||
|             $('#filename_label').html(fileNameAll);
 | ||
|      }
 | ||
|  </script>
 | ||
| <!--GuestUploadEnd-->
 | ||
| 
 | ||
| <!--IsFileStart-->
 | ||
|                 <div style="margin: 12px 4px 4px; text-align: center">
 | ||
|                     <div style="margin: 24px">
 | ||
|                         <textarea id="url" title="url" rows="1" style="width: 100%; margin-top: 2px;" readonly><!--FileEncodeUrl--></textarea>
 | ||
|                         <a href="<!--FileUrl-->"><ion-icon name="download" style="line-height: 16px;vertical-align: middle;"></ion-icon> <!--constStr@Download--></a>
 | ||
|                     </div>
 | ||
|                     <div style="margin: 24px">
 | ||
| <!--IsimgFileStart-->
 | ||
|                         <img src="<!--FileDownUrl-->" alt="<!--FileName-->" onload="if (this.offsetWidth>document.getElementById('url').offsetWidth) this.style.width='100%';" />
 | ||
| <!--IsimgFileEnd-->
 | ||
| <!--IsvideoFileStart-->
 | ||
|                         <div id="video-a0"></div>
 | ||
| <!--IsvideoFileEnd-->
 | ||
| <!--IsmusicFileStart-->
 | ||
|                         <audio src="<!--FileDownUrl-->" controls="controls" style="width: 100%"></audio>
 | ||
| <!--IsmusicFileEnd-->
 | ||
| <!--IspdfFileStart-->
 | ||
|                         <div id="pdf-d"></div>
 | ||
| <!--IspdfFileEnd-->
 | ||
| <!--IsofficeFileStart-->
 | ||
|                         <iframe id="office-a" src="https://view.officeapps.live.com/op/view.aspx?src=<!--FileEncodeDownUrl-->" style="width: 100%;height: 800px" frameborder="0"></iframe>
 | ||
| <!--IsofficeFileEnd-->
 | ||
| <!--IstxtFileStart-->
 | ||
|                         <div id="txt">
 | ||
| <!--AdminStart-->
 | ||
|                         <form id="txt-form" action="" method="POST">
 | ||
|                             <a onclick="document.getElementById('txt-a').readOnly='';document.getElementById('txt-save').style.display='';document.getElementById('txt-editbutton').style.display='none';document.getElementById('txt-cancelbutton').style.display='';" id="txt-editbutton"><ion-icon name="create"></ion-icon><!--constStr@ClicktoEdit--></a>
 | ||
|                             <a onclick="document.getElementById('txt-a').readOnly='readonly';document.getElementById('txt-save').style.display='none';document.getElementById('txt-editbutton').style.display='';document.getElementById('txt-cancelbutton').style.display='none';" id="txt-cancelbutton" style="display:none"><ion-icon name="close"></ion-icon><!--constStr@CancelEdit--></a>   
 | ||
|                             <a id="txt-save" style="display:none"><ion-icon name="save"></ion-icon><!--constStr@Save--></a>
 | ||
| <!--AdminEnd-->
 | ||
|                             <textarea id="txt-a" name="editfile" readonly style="width: 100%; margin-top: 2px;" <!--AdminStart-->onchange="document.getElementById('txt-save').onclick=function(){document.getElementById('txt-form').submit();}"<!--AdminEnd--> ><!--TxtContent--></textarea>
 | ||
| <!--AdminStart-->
 | ||
|                             </form>
 | ||
| <!--AdminEnd-->
 | ||
|                         </div>
 | ||
| <!--IstxtFileEnd-->
 | ||
| <!--IsOtherFileStart-->
 | ||
|                         <span><!--constStr@FileNotSupport--></span>
 | ||
| <!--IsOtherFileEnd-->
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
| <!--IsFileEnd-->
 | ||
| <!--IsFolderStart-->
 | ||
|                 <table class="table table-hover" id="list-table">
 | ||
|                     <tr class="thead-dark" id="tr0">
 | ||
|                         <th class="file">
 | ||
|                             <a onclick="sortby('a');"><!--constStr@File--></a>
 | ||
| <!--ShowThumbnailsStart-->
 | ||
|                                
 | ||
|                             <button class="btn btn-sm btn-secondary" onclick="showthumbnails(this);"><!--constStr@ShowThumbnails--></button>
 | ||
| <!--ShowThumbnailsEnd-->
 | ||
|                              
 | ||
|                             <button class="btn btn-sm btn-secondary" onclick="CopyAllDownloadUrl('.download');"><!--constStr@CopyAllDownloadUrl--></button>
 | ||
|                         </th>
 | ||
|                         <th class="updated_at"><a onclick="sortby('time');"><!--constStr@EditTime--></a></th>
 | ||
|                         <th class="size"><a onclick="sortby('size');"><!--constStr@Size--></a></th>
 | ||
|                     </tr>
 | ||
|                     <!-- Dirs -->
 | ||
| <!--FolderListStart-->
 | ||
|                     <tr data-to id="tr<!--filenum-->">
 | ||
|                         <td class="file">
 | ||
| <!--AdminStart-->
 | ||
| <div class="dropdown d-inline">
 | ||
|     <a class="btn btn-secondary dropdown-toggle" href="#" type="button"  role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | ||
|         <ion-icon name="construct"></ion-icon>
 | ||
|     </a>
 | ||
|     <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#exampleencrypt" onclick="document.getElementById('encrypt_hidden').value='<!--FileEncodeReplaceName-->'"><ion-icon name="lock"></ion-icon><!--constStr@Encrypt--></a>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#renameModal" onclick="showdiv(event, 'rename',<!--filenum-->);"><ion-icon name="create"></ion-icon><!--constStr@Rename--></a>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#MoveModal" onclick="showdiv(event, 'move',<!--filenum-->);"><ion-icon name="move"></ion-icon><!--constStr@Move--></a>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#CopyModal" onclick="showdiv(event, 'copy',<!--filenum-->);"><ion-icon name="copy"></ion-icon><!--constStr@Copy--></a>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#DeleteModal" onclick="showdiv(event, 'delete',<!--filenum-->);"><ion-icon name="trash"></ion-icon><!--constStr@Delete--></a>
 | ||
|     </div>
 | ||
| </div>                
 | ||
|                             
 | ||
| <!--AdminEnd-->
 | ||
|                             <ion-icon name="folder"></ion-icon>
 | ||
|                             <a id="file_a<!--filenum-->" name="filelist" href="<!--FileEncodeReplaceUrl-->/"><!--FileEncodeReplaceName--></a>
 | ||
|                         </td>
 | ||
|                         <td class="updated_at" id="folder_time<!--filenum-->"><!--lastModifiedDateTime--></td>
 | ||
|                         <td class="size" id="folder_size<!--filenum-->"><!--size--></td>
 | ||
|                     </tr>
 | ||
| <!--FolderListEnd-->
 | ||
| <!--FileListStart-->
 | ||
|                     <tr data-to id="tr<!--filenum-->">
 | ||
|                         <td class="file">
 | ||
| <!--AdminStart-->
 | ||
| <div class="dropdown d-inline">
 | ||
|     <a class="btn btn-secondary dropdown-toggle" href="#" type="button"  role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | ||
|         <ion-icon name="construct"></ion-icon>
 | ||
|     </a>
 | ||
|     <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#renameModal" onclick="showdiv(event, 'rename',<!--filenum-->);"><ion-icon name="create"></ion-icon><!--constStr@Rename--></a></li>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#MoveModal" onclick="showdiv(event, 'move',<!--filenum-->);"><ion-icon name="move"></ion-icon><!--constStr@Move--></a></li>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#CopyModal" onclick="showdiv(event, 'copy',<!--filenum-->);"><ion-icon name="copy"></ion-icon><!--constStr@Copy--></a></li>
 | ||
|         <a class="dropdown-item" data-toggle="modal" data-target="#DeleteModal" onclick="showdiv(event, 'delete',<!--filenum-->);"><ion-icon name="trash"></ion-icon><!--constStr@Delete--></a></li>
 | ||
|     </div>
 | ||
| </div>    
 | ||
| <!--AdminEnd-->
 | ||
|                             <ion-icon name="<!--IconValue-->"></ion-icon>
 | ||
|                             <a id="file_a<!--filenum-->" name="filelist" href="<!--FileEncodeReplaceUrl-->?preview" target=_blank><!--FileEncodeReplaceName--></a>
 | ||
|                             <a class="download" href="<!--FileEncodeReplaceUrl-->"><ion-icon name="download"></ion-icon></a>
 | ||
|                         </td>
 | ||
|                         <td class="updated_at" id="file_time<!--filenum-->"><!--lastModifiedDateTime--></td>
 | ||
|                         <td class="size" id="file_size<!--filenum-->"><!--size--></td>
 | ||
|                     </tr>
 | ||
| <!--FileListEnd-->
 | ||
|                 </table>
 | ||
| <!--MorePageStart-->
 | ||
|                 <form action="" method="POST" id="nextpageform">
 | ||
|                     <input type="hidden" id="pagenum" name="pagenum" value="">
 | ||
|                     <table width=100% border=0>
 | ||
|                         <tr>
 | ||
|                             <td width=60px align=center>
 | ||
| <!--PrePageStart-->
 | ||
|                                 <a onclick="nextpage(<!--PrePageNum-->);"><!--constStr@PrePage--></a>
 | ||
| <!--PrePageEnd-->
 | ||
|                             </td>
 | ||
|                             <td class="updated_at">
 | ||
| <!--MorePageListStart-->
 | ||
|                                 <a onclick="nextpage(<!--PageNum-->);"><!--PageNum--></a>
 | ||
| <!--MorePageListEnd-->
 | ||
| <!--MorePageListNowStart-->
 | ||
|                                 <font color=red><!--PageNum--></font>
 | ||
| <!--MorePageListNowEnd-->
 | ||
|                             </td>
 | ||
|                             <td width=60px align=center>
 | ||
| <!--NextPageStart-->
 | ||
|                                 <a onclick="nextpage(<!--NextPageNum-->);"><!--constStr@NextPage--></a>
 | ||
| <!--NextPageEnd-->
 | ||
|                             </td>
 | ||
|                         </tr>
 | ||
|                     </table>
 | ||
|                 </form>
 | ||
| <!--MorePageEnd-->
 | ||
| <!--AdminStart-->
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| <div id="upload_div" class="input-group p-3">
 | ||
|     <div id="upload_btns" >
 | ||
|       <select class="form-control" onchange="document.getElementById('upload_file').webkitdirectory=this.value;">
 | ||
|         <option value=""><!--constStr@UploadFile--></option>
 | ||
|         <option value="1"><!--constStr@UploadFolder--></option>
 | ||
|       </select>
 | ||
|     </div>
 | ||
|     <div class="custom-file">
 | ||
|       <input onchange="showFileName()" type="file" class="custom-file-input" id="upload_file" aria-describedby="upload_submit" multiple="multiple" name="upload_filename">
 | ||
|       <label id="filename_label"  class="custom-file-label" for="upload_file"><!--constStr@FileSelected--></label>
 | ||
|     </div>
 | ||
|     <div class="input-group-append">
 | ||
|       <button class="btn btn-outline-secondary" onclick="preup();" type="button" id="upload_submit"><!--constStr@Upload--></button>
 | ||
|     </div>
 | ||
| </div>
 | ||
| <div id="uploading_div" class="input-group p-3"></div>
 | ||
| 
 | ||
|  <script> 
 | ||
|  function showFileName(){
 | ||
|      var file = document.getElementById("upload_file").files;
 | ||
|      //取得file集合
 | ||
| 
 | ||
|          var fileNameAll = "";
 | ||
|             for(var i = 0; i < file.length; i++){
 | ||
|                 fileNameAll += file[i].name + ";";
 | ||
|             }
 | ||
|             fileNameAll = fileNameAll.substr(0, fileNameAll.length - 1);
 | ||
| 
 | ||
|             $('#filename_label').html(fileNameAll);
 | ||
|      }
 | ||
|  </script>
 | ||
| <!--AdminEnd-->
 | ||
| <!--IsFolderEnd-->
 | ||
| <!--ListEnd-->
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| <!--ReadmemdStart-->
 | ||
|     <div class="list-wrapper" id="readme-div">
 | ||
|         <div class="list-container">
 | ||
|             <div class="list-header-container">
 | ||
|                 <div class="readme">
 | ||
|                     <div class="markdown-body" id="readme">
 | ||
|                         <textarea id="readme-md" style="display:none;"><!--ReadmemdContent--></textarea>
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| <!--ReadmemdEnd-->
 | ||
| <!--FootomfStart-->
 | ||
|     <div class="list-wrapper" id="foot-om-div">
 | ||
|         <div class="list-container">
 | ||
|             <div class="list-header-container">
 | ||
|                 <div class="readme">
 | ||
|                     <div class="customfile" id="foot-om">
 | ||
|                         <!--FootomfContent-->
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| <!--FootomfEnd-->
 | ||
| 
 | ||
|     <div id="mask" style="display:none;"></div>
 | ||
| <!--AdminStart-->
 | ||
| <!--IsFolderStart-->
 | ||
|     <div style="">
 | ||
|         <div id="rename_div" class="operatediv" style="">
 | ||
|             <div>
 | ||
|                 <label id="rename_label" style="display:none"></label>
 | ||
|                 <form id="rename_form" onsubmit="return submit_operate('rename');">
 | ||
|                 <input id="rename_sid" name="rename_sid" type="hidden" value="">
 | ||
|                 <input id="rename_hidden" name="rename_oldname" type="hidden" value="">
 | ||
| 
 | ||
| 
 | ||
|                             <!-- RenameModal -->
 | ||
|     <script type="text/javascript">
 | ||
|         $(document).ready(function(){
 | ||
|             $("#myrename").click(function(){
 | ||
|                 $("#renameModal").modal('hide');
 | ||
|                 window.location.reload();
 | ||
|             });
 | ||
|         });
 | ||
|     </script>
 | ||
| 
 | ||
| <div class="modal fade" id="renameModal" tabindex="-1" role="dialog" aria-labelledby="renameModalLabel" aria-hidden="true">
 | ||
|   <div class="modal-dialog" role="document">
 | ||
|     <div class="modal-content">
 | ||
|       <div class="modal-header">
 | ||
|         <h5 class="modal-title" id="renameModalLabel"><!--constStr@Rename--></h5>
 | ||
|         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|           <span aria-hidden="true">×</span>
 | ||
|         </button>
 | ||
|         </div>
 | ||
|         <div class="modal-body">
 | ||
|             <div class="input-group mb-3">
 | ||
|                 <input class="form-control" id="rename_input" name="rename_newname" type="text" value="">
 | ||
|                 <div class="input-group-append">
 | ||
|                     <input class="input-group-text btn btn-outline-secondary" id="myrename" name="operate_action" type="submit" value="<!--constStr@Rename-->">
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|   </div>
 | ||
| </div>
 | ||
|                 </form>
 | ||
|             </div>
 | ||
|         </div>
 | ||
| 
 | ||
| 
 | ||
|         <div class="modal fade operatediv_close" id="exampleencrypt" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
 | ||
|                 <div class="modal-dialog" role="document">
 | ||
|                     <div class="modal-content">
 | ||
|                         <div class="modal-header">
 | ||
|                             <h5 class="modal-title" id="exampleModalLabel"><!--constStr@Encrypt--></h5>
 | ||
|                             <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|                                 <span aria-hidden="true">×</span>
 | ||
|                             </button>
 | ||
|                         </div>
 | ||
|                         <div id="encrypt_div" class="operatediv" >
 | ||
|             <div class="container text-center rounded my-3 py-3">
 | ||
|                 <form id="encrypt_form" onsubmit="return submit_operate('encrypt');">
 | ||
|                 <input id="encrypt_sid" name="encrypt_sid" type="hidden" value="">
 | ||
|                 <input id="encrypt_hidden" name="encrypt_folder" type="hidden" value="">
 | ||
|                 <input class="form-control d-inline" id="encrypt_input" name="encrypt_newpass" type="text" value="" placeholder="<!--constStr@InputPasswordUWant-->">
 | ||
|                 <!--EncryptBtnStart-->
 | ||
|                 <script type="text/javascript">
 | ||
|                     $(document).ready(function(){
 | ||
|                         $("#mymodal").click(function(){
 | ||
|                             $("#exampleencrypt").modal('hide');
 | ||
|                             window.location.reload();
 | ||
|                         });
 | ||
|                     });
 | ||
|                 </script>
 | ||
|                 <input class="btn btn-secondary input-group-append my-3 float-right" name="operate_action" href="" type="submit" value="<!--constStr@Encrypt-->" id="mymodal">
 | ||
|                 <!--EncryptBtnEnd-->
 | ||
|                 
 | ||
|                 <!--EncryptAlertStart--><br><label><!--constStr@SetpassfileBfEncrypt--></label><!--EncryptAlertEnd-->
 | ||
|                 
 | ||
|             </form>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
| 
 | ||
|             <div id="delete_div" class="operatediv">
 | ||
| 
 | ||
| <form id="delete_form" method="get" onsubmit="return submit_operate('delete');">
 | ||
| <div class="modal fade" id="DeleteModal" tabindex="-1" role="dialog" aria-labelledby="DeleteModalLabel"
 | ||
| aria-hidden="true">
 | ||
| <div class="modal-dialog" role="document">
 | ||
| <div class="modal-content">
 | ||
|   <div class="modal-header">
 | ||
|     <h5 class="modal-title" id="DeleteModalLabel"><!--constStr@Delete--></h5>
 | ||
|     <button type="button" type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|       <span aria-hidden="true">×</span>
 | ||
|     </button>
 | ||
|   </div>
 | ||
|   <div class="modal-body">
 | ||
|     <label id="delete_label"></label>
 | ||
|     <input id="delete_sid" name="delete_sid" type="hidden" value="">
 | ||
|     <input id="delete_hidden" name="delete_name" type="hidden" value="">
 | ||
|   </div>
 | ||
|   <div class="modal-footer">
 | ||
|     <button type="button" class="btn btn-secondary" data-dismiss="modal"><!--constStr@Close--></button>
 | ||
|     <input class="btn btn-danger" name="operate_action" type="submit" value="<!--constStr@Delete-->" onclick="$('#DeleteModal').modal('hide');
 | ||
|         window.location.reload();">
 | ||
|   </div>
 | ||
| </div>
 | ||
| </div>
 | ||
| </div>
 | ||
| </form>
 | ||
| <div id="copy_div" class="operatediv">
 | ||
| <form id="copy_form" method="get" onsubmit="return submit_operate('copy');">
 | ||
| <div class="modal fade" id="CopyModal" tabindex="-1" role="dialog" aria-labelledby="CopyModalLabel"
 | ||
| aria-hidden="true">
 | ||
| <div class="modal-dialog" role="document">
 | ||
| <div class="modal-content">
 | ||
|   <div class="modal-header">
 | ||
|     <h5 class="modal-title" id="CopyModalLabel"><!--constStr@Copy--></h5>
 | ||
|     <button type="button" type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|       <span aria-hidden="true">×</span>
 | ||
|     </button>
 | ||
|   </div>
 | ||
|   <div class="modal-body">
 | ||
|     <label id="copy_label"></label>
 | ||
|     <input id="copy_sid" name="copy_sid" type="hidden" value="">
 | ||
|     <input id="copy_hidden" name="copy_name" type="hidden" value="">
 | ||
|     <input id="copy_input" name="copy_input" type="hidden" value="">
 | ||
|   </div>
 | ||
|   <div class="modal-footer">
 | ||
|     <button type="button" class="btn btn-secondary" data-dismiss="modal"><!--constStr@Close--></button>
 | ||
|     <input class="btn btn-primary" name="operate_action" type="submit" value="<!--constStr@Copy-->" onclick="$('#CopyModal').modal('hide');
 | ||
|         window.location.reload();">
 | ||
|   </div>
 | ||
| </div>
 | ||
| </div>
 | ||
| </div>
 | ||
| </form>
 | ||
| 
 | ||
|         </div>
 | ||
|         <div id="move_div" class="operatediv">
 | ||
| 
 | ||
|         <form id="move_form" method="get" onsubmit="return submit_operate('move');">
 | ||
|     <div class="modal fade" id="MoveModal" tabindex="-1" role="dialog" aria-labelledby="MoveModalLabel"
 | ||
|       aria-hidden="true">
 | ||
|       <div class="modal-dialog" role="document">
 | ||
|         <div class="modal-content">
 | ||
|           <div class="modal-header">
 | ||
|             <h5 class="modal-title" id="MoveModalLabel"><!--constStr@Move--></h5>
 | ||
|             <button type="button" type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|               <span aria-hidden="true">×</span>
 | ||
|             </button>
 | ||
|           </div>
 | ||
|           <div class="modal-body">
 | ||
|             <div class="input-group mb-3">
 | ||
|             <input id="move_sid" name="move_sid" type="hidden" value="">
 | ||
|                 <input id="move_hidden" name="move_name" type="hidden" value="">
 | ||
|                 <select id="move_input" name="move_folder" class="form-control">
 | ||
| <!--MoveRootStart-->
 | ||
|                     <option value="/../"><!--constStr@ParentDir--></option>
 | ||
| <!--MoveRootEnd-->
 | ||
| <!--MoveDirsStart-->
 | ||
|                     <option value="<!--MoveDirsValue-->"><!--MoveDirsValue--></option>
 | ||
| <!--MoveDirsEnd-->
 | ||
|                 </select>
 | ||
|             </div>
 | ||
|           </div>
 | ||
|           <div class="modal-footer">
 | ||
|             <button type="button" class="btn btn-secondary" data-dismiss="modal"><!--constStr@Close--></button>
 | ||
|             <input class="btn btn-primary" name="operate_action" type="submit" value="<!--constStr@Move-->" onclick="$('#MoveModal').modal('hide');
 | ||
|                 window.location.reload();">
 | ||
|           </div>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|     </div>
 | ||
|   </form>
 | ||
|   <script>
 | ||
|       function saveReport() { 
 | ||
| $("#showDataForm").ajaxSubmit(function(message) { 
 | ||
| }); 
 | ||
| }
 | ||
| </script>
 | ||
| 
 | ||
| 
 | ||
|                 <form id="create_form" method="get" onsubmit="return submit_operate('create');">
 | ||
|     <div class="modal fade" id="NewFileModal" tabindex="-1" role="dialog" aria-labelledby="CreateModalLabel"
 | ||
|       aria-hidden="true">
 | ||
|       <div class="modal-dialog" role="document">
 | ||
|         <div class="modal-content">
 | ||
|           <div class="modal-header">
 | ||
|             <h5 class="modal-title" id="CreateModalLabel"><!--constStr@Create--><!--constStr@File--></h5>
 | ||
|             <button type="button" type="button" class="close" data-dismiss="modal" aria-label="Close">
 | ||
|               <span aria-hidden="true">×</span>
 | ||
|             </button>
 | ||
|           </div>
 | ||
|           <div class="modal-body">
 | ||
|             <div class="input-group mb-3">
 | ||
|               <input type="text" id="create_input" name="create_name" class="form-control" placeholder="<!--constStr@Create--><!--constStr@File-->">
 | ||
|               <div class="input-group-prepend">
 | ||
|                 <input type="hidden" id="create_type_folder" name="create_type" value="folder">
 | ||
|                 <input id="create_sid" name="create_sid" type="hidden" value="">
 | ||
|                 <input id="create_hidden" type="hidden" value="">
 | ||
|                 <div type="button" id="create_type_folder_button" class="btn btn-secondary" data-toggle="collapse"
 | ||
|                   data-target="#collapseExample" onclick="if(document.getElementById('create_input').placeholder == '<!--constStr@Create--><!--constStr@Folder-->'){
 | ||
|                   document.getElementById('create_input').placeholder='请<!--constStr@Create--><!--constStr@File-->';document.getElementById('create_type_folder').value='file';
 | ||
|                   }else {
 | ||
|                     document.getElementById('create_input').placeholder='<!--constStr@Create--><!--constStr@Folder-->';document.getElementById('create_type_folder').value='folder';
 | ||
|                     }"><!--constStr@File-->/<!--constStr@Folder--></div>
 | ||
|                 <!--$('#filetext').data('toggle') 获取 data-toggle 的值-->
 | ||
| 
 | ||
|               </div>
 | ||
|             </div>
 | ||
|             <div class="input-group mb-3">
 | ||
| 
 | ||
|               <div class="collapse w-100" id="collapseExample">
 | ||
|                 <textarea name="create_text" id="filetextarea" class="form-control" aria-label="With textarea"
 | ||
|                   placeholder="<!--constStr@File--><!--constStr@Content-->"></textarea>
 | ||
|               </div>
 | ||
| 
 | ||
|             </div>
 | ||
| 
 | ||
|           </div>
 | ||
|           <div class="modal-footer">
 | ||
|             <button type="button" class="btn btn-secondary" data-dismiss="modal"><!--constStr@Close--></button>
 | ||
|             <input class="btn btn-primary" name="operate_action" type="submit" value="<!--constStr@Create-->" onclick="$('#NewFileModal').modal('hide');
 | ||
|                 window.location.reload();">
 | ||
|           </div>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|     </div>
 | ||
|   </form>
 | ||
|   <script>
 | ||
|       function saveReport() { 
 | ||
|  
 | ||
| $("#showDataForm").ajaxSubmit(function(message) { 
 | ||
| }); 
 | ||
| return false;
 | ||
| }
 | ||
| </script>
 | ||
| 
 | ||
|     </div>
 | ||
| <!--IsFolderEnd-->
 | ||
| <!--AdminEnd-->
 | ||
| <!--LoginStart-->
 | ||
| 
 | ||
| <!--LoginEnd-->
 | ||
| <p class="text-center text-muted"><a href="https://github.com/qkqpttgf/OneManager-php" class="text-muted">OneManager</a> By 逸笙 Theme By Nchyn</p>
 | ||
|     <p class="text-center" style="color: rgba(247,247,249,0);"><!--FootStr--></p>
 | ||
| 
 | ||
| </body>
 | ||
| 
 | ||
| <!--ListStart-->
 | ||
| <!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
 | ||
| <script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
 | ||
| <!--GuestUploadStart--><script type="text/javascript" src="//cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js"></script><!--GuestUploadEnd-->
 | ||
| <!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
 | ||
| <!--ListEnd-->
 | ||
| <script type="text/javascript">
 | ||
|     function changelanguage(str)
 | ||
|     {
 | ||
|         if (str=='Language') str = '';
 | ||
|         document.cookie='language='+str+'; path=/';
 | ||
|         location.href = location.href;
 | ||
|     }
 | ||
| <!--ListStart-->
 | ||
|     var root = '<!--base_disk_path-->';
 | ||
|     function path_format(path) {
 | ||
|         path = '/' + path + '/';
 | ||
|         while (path.indexOf('//') !== -1) {
 | ||
|             path = path.replace('//', '/')
 | ||
|         }
 | ||
|         return path
 | ||
|     }
 | ||
|     document.querySelectorAll('.table-header').forEach(function (e) {
 | ||
|         var path = e.innerText;
 | ||
|         if (path.substr(path.length-1)=='/') path = path.substr(0, path.length-1);
 | ||
|         var paths = path.split('/');
 | ||
|         e.innerHTML = '/ ';
 | ||
|         if (paths <= 2) return;
 | ||
|         for (var i = 1; i < paths.length - 1; i++) {
 | ||
|             var to = path_format(root + paths.slice(0, i + 1).join('/'));
 | ||
|             e.innerHTML += '<a href="' + to + '">' + paths[i] + '</a> / '
 | ||
|         }
 | ||
|         e.innerHTML += paths[paths.length - 1];
 | ||
|         e.innerHTML = e.innerHTML.replace(/\s\/\s$/, '')
 | ||
|     });
 | ||
| <!--IsFileStart-->
 | ||
|     var $url = document.getElementById('url');
 | ||
|     if ($url) {
 | ||
|         $url.innerHTML = location.protocol + '//' + location.host + $url.innerHTML;
 | ||
|         $url.style.height = $url.scrollHeight + 'px';
 | ||
|     }
 | ||
| <!--IsofficeFileStart-->
 | ||
|     var $officearea=document.getElementById('office-a');
 | ||
|     if ($officearea) {
 | ||
|         $officearea.style.height = window.innerHeight + 'px';
 | ||
|     }
 | ||
| <!--IsofficeFileEnd-->
 | ||
| <!--IstxtFileStart-->
 | ||
|     var $textarea=document.getElementById('txt-a');
 | ||
|     if ($textarea) {
 | ||
|         $textarea.style.height = $textarea.scrollHeight + 'px';
 | ||
|     }
 | ||
| <!--IstxtFileEnd-->
 | ||
| <!--IsvideoFileStart-->
 | ||
|     function loadResources(type, src, callback) {
 | ||
|         let script = document.createElement(type);
 | ||
|         let loaded = false;
 | ||
|         if (typeof callback === 'function') {
 | ||
|             script.onload = script.onreadystatechange = () => {
 | ||
|                 if (!loaded && (!script.readyState || /loaded|complete/.test(script.readyState))) {
 | ||
|                     script.onload = script.onreadystatechange = null;
 | ||
|                     loaded = true;
 | ||
|                     callback();
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|         if (type === 'link') {
 | ||
|             script.href = src;
 | ||
|             script.rel = 'stylesheet';
 | ||
|         } else {
 | ||
|             script.src = src;
 | ||
|         }
 | ||
|         document.getElementsByTagName('head')[0].appendChild(script);
 | ||
|     }
 | ||
|     function addVideos(videos) {
 | ||
|         let host = 'https://s0.pstatp.com/cdn/expire-1-M';
 | ||
|         let unloadedResourceCount = 4;
 | ||
|         let callback = (() => {
 | ||
|             return () => {
 | ||
|                 if (!--unloadedResourceCount) {
 | ||
|                     createDplayers(videos);
 | ||
|                 }
 | ||
|             };
 | ||
|         })(unloadedResourceCount, videos);
 | ||
|         loadResources(
 | ||
|             'link',
 | ||
|             host + '/dplayer/1.25.0/DPlayer.min.css',
 | ||
|             callback
 | ||
|         );
 | ||
|         loadResources(
 | ||
|             'script',
 | ||
|             host + '/dplayer/1.25.0/DPlayer.min.js',
 | ||
|             callback
 | ||
|         );
 | ||
|         loadResources(
 | ||
|             'script',
 | ||
|             host + '/hls.js/0.12.4/hls.light.min.js',
 | ||
|             callback
 | ||
|         );
 | ||
|         loadResources(
 | ||
|             'script',
 | ||
|             host + '/flv.js/1.5.0/flv.min.js',
 | ||
|             callback
 | ||
|         );
 | ||
|     }
 | ||
|     function createDplayers(videos) {
 | ||
|         for (i = 0; i < videos.length; i++) {
 | ||
|             console.log(videos[i]);
 | ||
|             new DPlayer({
 | ||
|                 container: document.getElementById('video-a' + i),
 | ||
|                 screenshot: true,
 | ||
|                 video: {
 | ||
|                     url: videos[i]
 | ||
|                 }
 | ||
|             });
 | ||
|         }
 | ||
|     }
 | ||
|     addVideos(['<!--FileDownUrl-->']);
 | ||
| <!--IsvideoFileEnd-->
 | ||
| <!--IspdfFileStart-->
 | ||
|     pdfjsLib.GlobalWorkerOptions.workerSrc = '//cdn.bootcss.com/pdf.js/2.3.200/pdf.worker.min.js';
 | ||
|     var loadingTask = pdfjsLib.getDocument({ url: '<!--FileDownUrl-->', });
 | ||
|     loadingTask.promise.then(function(pdf) {
 | ||
|         var pagenum =  pdf.numPages;
 | ||
|         var pdfContainer = document.getElementById('pdf-d');
 | ||
|         for (var i=1;i<=pagenum;i++) {
 | ||
|             var canvasNew = document.createElement('canvas');
 | ||
|             canvasNew.id = 'pdf-c'+i;
 | ||
|             pdfContainer.appendChild(canvasNew);
 | ||
|             renderpage(pdf,i);
 | ||
|         }
 | ||
|     });
 | ||
|     function renderpage(pdf,i)
 | ||
|     {
 | ||
|         pdf.getPage(i).then(function(page) { 
 | ||
|             var scale = 1.5;
 | ||
|             var viewport = page.getViewport({ scale: scale, });
 | ||
|             var canvas = document.getElementById('pdf-c'+i);
 | ||
|             var context = canvas.getContext("2d");
 | ||
|             canvas.height = viewport.height;
 | ||
|             canvas.width = viewport.width;
 | ||
|             var renderContext = {
 | ||
|                 canvasContext: context,
 | ||
|                 viewport: viewport,
 | ||
|             };
 | ||
|             page.render(renderContext);
 | ||
|         });
 | ||
|     }
 | ||
| <!--IspdfFileEnd-->
 | ||
| <!--IsFileEnd-->
 | ||
| <!--IsFolderStart-->
 | ||
| <!--HeadmdStart-->
 | ||
|     var $head = document.getElementById('head');
 | ||
|     if ($head) {
 | ||
|         //document.getElementById('head-div').parentNode.insertBefore(document.getElementById('head-div'),document.getElementById('list-div'));
 | ||
|         $head.innerHTML = marked(document.getElementById('head-md').innerText);
 | ||
|         
 | ||
|     }
 | ||
| <!--HeadmdEnd-->
 | ||
| <!--ReadmemdStart-->
 | ||
|     var $readme = document.getElementById('readme');
 | ||
|     if ($readme) {
 | ||
|         $readme.innerHTML = marked(document.getElementById('readme-md').innerText);
 | ||
|     }
 | ||
| <!--ReadmemdEnd-->
 | ||
| <!--ShowThumbnailsStart-->
 | ||
|     function showthumbnails(obj) {
 | ||
|         var files=document.getElementsByName('filelist');
 | ||
|         for ($i=0;$i<files.length;$i++) {
 | ||
|             str=files[$i].innerText;
 | ||
|             if (str.substr(-1)==' ') str=str.substr(0,str.length-1);
 | ||
|             if (!str) return;
 | ||
|             strarry=str.split('.');
 | ||
|             ext=strarry[strarry.length-1].toLowerCase();
 | ||
|             images = [<!--ImgExts-->];
 | ||
|             if (images.indexOf(ext)>-1) get_thumbnails_url(str, files[$i]);
 | ||
|         }
 | ||
|         obj.disabled='disabled';
 | ||
|     }
 | ||
|     function get_thumbnails_url(str, filea) {
 | ||
|         if (!str) return;
 | ||
|         var nurl=window.location.href;
 | ||
|         if (nurl.substr(-1)!="/") nurl+="/";
 | ||
|         var xhr = new XMLHttpRequest();
 | ||
|         xhr.open("GET", nurl+str+'?thumbnails', true);
 | ||
|                 //xhr.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|         xhr.send('');
 | ||
|         xhr.onload = function(e){
 | ||
|             if (xhr.status==200) {
 | ||
|                 if (xhr.responseText!='') filea.innerHTML='<img src="'+xhr.responseText+'" alt="'+str+'">';
 | ||
|             } else console.log(xhr.status+'\n'+xhr.responseText);
 | ||
|         }
 | ||
|     }
 | ||
| <!--ShowThumbnailsEnd-->
 | ||
| <!--MorePageStart-->
 | ||
|     function nextpage(num) {
 | ||
|         document.getElementById('pagenum').value=num;
 | ||
|         document.getElementById('nextpageform').submit();
 | ||
|     }
 | ||
| <!--MorePageEnd-->
 | ||
| <!--IsNotHiddenStart-->
 | ||
|     var sort=0;
 | ||
|     function sortby(string) {
 | ||
|         if (string=='a') if (sort!=0) {
 | ||
|             for (i = 1; i <= <!--maxfilenum-->; i++) document.getElementById('tr'+i).parentNode.insertBefore(document.getElementById('tr'+i),document.getElementById('tr'+(i-1)).nextSibling);
 | ||
|             sort=0;
 | ||
|             return;
 | ||
|         } else return;
 | ||
|         sort1=sort;
 | ||
|         sortby('a');
 | ||
|         sort=sort1;
 | ||
|         var a=[];
 | ||
|         for (i = 1; i <= <!--maxfilenum-->; i++) {
 | ||
|             a[i]=i;
 | ||
|             if (!!document.getElementById('folder_'+string+i)) {
 | ||
|                 var td1=document.getElementById('folder_'+string+i);
 | ||
|                 for (j = 1; j < i; j++) {
 | ||
|                     if (!!document.getElementById('folder_'+string+a[j])) {
 | ||
|                         var c=false;
 | ||
|                         if (string=='time') if (sort==-1) {
 | ||
|                             c=(td1.innerText < document.getElementById('folder_'+string+a[j]).innerText);
 | ||
|                         } else {
 | ||
|                             c=(td1.innerText > document.getElementById('folder_'+string+a[j]).innerText);
 | ||
|                         }
 | ||
|                         if (string=='size') if (sort==2) {
 | ||
|                             c=(size_reformat(td1.innerText) < size_reformat(document.getElementById('folder_'+string+a[j]).innerText));
 | ||
|                         } else {
 | ||
|                             c=(size_reformat(td1.innerText) > size_reformat(document.getElementById('folder_'+string+a[j]).innerText));
 | ||
|                         }
 | ||
|                         if (c) {
 | ||
|                             document.getElementById('tr'+i).parentNode.insertBefore(document.getElementById('tr'+i),document.getElementById('tr'+a[j]));
 | ||
|                             for (k = i; k > j; k--) {
 | ||
|                                 a[k]=a[k-1];
 | ||
|                             }
 | ||
|                             a[j]=i;
 | ||
|                             break;
 | ||
|                         }
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             if (!!document.getElementById('file_'+string+i)) {
 | ||
|                 var td1=document.getElementById('file_'+string+i);
 | ||
|                 for (j = 1; j < i; j++) {
 | ||
|                     if (!!document.getElementById('file_'+string+a[j])) {
 | ||
|                         var c=false;
 | ||
|                         if (string=='time') if (sort==-1) {
 | ||
|                             c=(td1.innerText < document.getElementById('file_'+string+a[j]).innerText);
 | ||
|                         } else {
 | ||
|                             c=(td1.innerText > document.getElementById('file_'+string+a[j]).innerText);
 | ||
|                         }
 | ||
|                         if (string=='size') if (sort==2) {
 | ||
|                             c=(size_reformat(td1.innerText) < size_reformat(document.getElementById('file_'+string+a[j]).innerText));
 | ||
|                         } else {
 | ||
|                             c=(size_reformat(td1.innerText) > size_reformat(document.getElementById('file_'+string+a[j]).innerText));
 | ||
|                         }
 | ||
|                         if (c) {
 | ||
|                             document.getElementById('tr'+i).parentNode.insertBefore(document.getElementById('tr'+i),document.getElementById('tr'+a[j]));
 | ||
|                             for (k = i; k > j; k--) {
 | ||
|                                 a[k]=a[k-1];
 | ||
|                             }
 | ||
|                             a[j]=i;
 | ||
|                             break;
 | ||
|                         }
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|         if (string=='time') if (sort==-1) {
 | ||
|             sort=1;
 | ||
|         } else {
 | ||
|             sort=-1;
 | ||
|         }
 | ||
|         if (string=='size') if (sort==2) {
 | ||
|             sort=-2;
 | ||
|         } else {
 | ||
|             sort=2;
 | ||
|         }
 | ||
|     }
 | ||
|     function size_reformat(str) {
 | ||
|         if (str.substr(-1)==' ') str=str.substr(0,str.length-1);
 | ||
|         if (str.substr(-2)=='GB') num=str.substr(0,str.length-3)*1024*1024*1024;
 | ||
|         if (str.substr(-2)=='MB') num=str.substr(0,str.length-3)*1024*1024;
 | ||
|         if (str.substr(-2)=='KB') num=str.substr(0,str.length-3)*1024;
 | ||
|         if (str.substr(-2)==' B') num=str.substr(0,str.length-2);
 | ||
|         return num;
 | ||
|     }
 | ||
| <!--IsNotHiddenEnd-->
 | ||
| <!--IsFolderEnd-->
 | ||
| <!--WriteTimezoneStart-->
 | ||
|     var nowtime= new Date();
 | ||
|     var timezone = 0-nowtime.getTimezoneOffset()/60;
 | ||
|     var expd = new Date();
 | ||
|     expd.setTime(expd.getTime()+(2*60*60*1000));
 | ||
|     var expires = "expires="+expd.toGMTString();
 | ||
|     document.cookie="timezone="+timezone+"; path=/; "+expires;
 | ||
|     if (timezone!=<!--timezone-->) {
 | ||
|         alert('Your timezone is '+timezone+', reload local timezone.');
 | ||
|         location.href=location.href;
 | ||
|     }
 | ||
| <!--WriteTimezoneEnd-->
 | ||
|     function CopyAllDownloadUrl(str) {
 | ||
|         var tmptextarea=document.createElement('textarea');
 | ||
|         document.body.appendChild(tmptextarea);
 | ||
|         tmptextarea.setAttribute('style','position:absolute;left:-100px;width:0px;height:0px;');
 | ||
|         document.querySelectorAll(str).forEach(function (e) {
 | ||
|             tmptextarea.innerHTML+=e.href+"\r\n";
 | ||
|         });
 | ||
|         tmptextarea.select();
 | ||
|         tmptextarea.setSelectionRange(0, tmptextarea.value.length);
 | ||
|         document.execCommand("copy");
 | ||
|         alert(tmptextarea.innerHTML+"<!--constStr@Success-->");
 | ||
|     }
 | ||
| <!--UploadJsStart-->
 | ||
|     function uploadbuttonhide() {
 | ||
|         document.getElementById('upload_btns').style.display='none';
 | ||
|         /*document.getElementById('upload_submit').disabled='disabled';
 | ||
|         document.getElementById('upload_file').disabled='disabled';
 | ||
|         document.getElementById('upload_submit').style.display='none';
 | ||
|         document.getElementById('upload_file').style.display='none';*/
 | ||
|     }
 | ||
|     function uploadbuttonshow() {
 | ||
|         document.getElementById('upload_btns').style.display='';
 | ||
|         /*document.getElementById('upload_file').disabled='';
 | ||
|         document.getElementById('upload_submit').disabled='';
 | ||
|         document.getElementById('upload_submit').style.display='';
 | ||
|         document.getElementById('upload_file').style.display='';*/
 | ||
|     }
 | ||
|     function preup() {
 | ||
|         uploadbuttonhide();
 | ||
|         var files=document.getElementById('upload_file').files;
 | ||
| 	    if (files.length<1) {
 | ||
|             uploadbuttonshow();
 | ||
|             return;
 | ||
|         };
 | ||
|         var table1=document.createElement('table');
 | ||
|         document.getElementById('uploading_div').appendChild(table1);
 | ||
|         table1.setAttribute('class','list-table');
 | ||
|         var timea=new Date().getTime();
 | ||
|         var i=0;
 | ||
|         getuplink(i);
 | ||
|         function getuplink(i) {
 | ||
|             var file=files[i];
 | ||
|             var tr1=document.createElement('tr');
 | ||
|             table1.appendChild(tr1);
 | ||
|             tr1.setAttribute('data-to',1);
 | ||
|             var td1=document.createElement('td');
 | ||
|             tr1.appendChild(td1);
 | ||
|             td1.setAttribute('style','width:30%');
 | ||
|             td1.setAttribute('id','upfile_td1_'+timea+'_'+i);
 | ||
|             td1.innerHTML=(file.webkitRelativePath||file.name)+'<br>'+size_format(file.size);
 | ||
|             var td2=document.createElement('td');
 | ||
|             tr1.appendChild(td2);
 | ||
|             td2.setAttribute('id','upfile_td2_'+timea+'_'+i);
 | ||
|             td2.innerHTML='<!--constStr@GetUploadLink--> ...';
 | ||
|             if (file.size>100*1024*1024*1024) {
 | ||
|                 td2.innerHTML='<font color="red"><!--constStr@UpFileTooLarge--></font>';
 | ||
|                 uploadbuttonshow();
 | ||
|                 return;
 | ||
|             }
 | ||
|             var xhr1 = new XMLHttpRequest();
 | ||
|             xhr1.open("GET", '?action=upbigfile&upbigfilename='+ encodeURIComponent((file.webkitRelativePath||file.name)) +'&filesize='+ file.size +'&lastModified='+ file.lastModified);
 | ||
|             xhr1.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|             xhr1.send(null);
 | ||
|             xhr1.onload = function(e){
 | ||
|                 td2.innerHTML='<font color="red">'+xhr1.responseText+'</font>';
 | ||
|                 if (xhr1.status==200) {
 | ||
|                     console.log(xhr1.responseText);
 | ||
|                     var html=JSON.parse(xhr1.responseText);
 | ||
|                     if (!html['uploadUrl']) {
 | ||
|                         td2.innerHTML='<font color="red">'+xhr1.responseText+'</font><br>';
 | ||
|                         uploadbuttonshow();
 | ||
|                     } else {
 | ||
|                         td2.innerHTML='<!--constStr@UploadStart--> ...';
 | ||
|                         binupfile(file,html['uploadUrl'],timea+'_'+i);
 | ||
|                     }
 | ||
|                 }
 | ||
|                 if (i<files.length-1) {
 | ||
|                     i++;
 | ||
|                     getuplink(i);
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
|     function size_format(num) {
 | ||
|         if (num>1024) {
 | ||
|             num=num/1024;
 | ||
|         } else {
 | ||
|             return num.toFixed(2) + ' B';
 | ||
|         }
 | ||
|         if (num>1024) {
 | ||
|             num=num/1024;
 | ||
|         } else {
 | ||
|             return num.toFixed(2) + ' KB';
 | ||
|         }
 | ||
|         if (num>1024) {
 | ||
|             num=num/1024;
 | ||
|         } else {
 | ||
|             return num.toFixed(2) + ' MB';
 | ||
|         }
 | ||
|         return num.toFixed(2) + ' GB';
 | ||
|     }
 | ||
|     function binupfile(file,url,tdnum){
 | ||
|         var label=document.getElementById('upfile_td2_'+tdnum);
 | ||
|         var reader = new FileReader();
 | ||
|         var StartStr='';
 | ||
|         var MiddleStr='';
 | ||
|         var StartTime;
 | ||
|         var EndTime;
 | ||
|         var newstartsize = 0;
 | ||
|         if(!!file){
 | ||
|             var asize=0;
 | ||
|             var totalsize=file.size;
 | ||
|             var xhr2 = new XMLHttpRequest();
 | ||
|             xhr2.open("GET", url);
 | ||
|                     //xhr2.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|             xhr2.send(null);
 | ||
|             xhr2.onload = function(e){
 | ||
|                 if (xhr2.status==200) {
 | ||
|                     var html = JSON.parse(xhr2.responseText);
 | ||
|                     var a = html['nextExpectedRanges'][0];
 | ||
|                     newstartsize = Number( a.slice(0,a.indexOf("-")) );
 | ||
|                     StartTime = new Date();
 | ||
| <!--AdminStart-->
 | ||
|                     asize = newstartsize;
 | ||
| <!--AdminEnd-->
 | ||
|                     if (newstartsize==0) {
 | ||
|                         StartStr='<!--constStr@UploadStartAt-->:' +StartTime.toLocaleString()+'<br>' ;
 | ||
|                     } else {
 | ||
|                         StartStr='<!--constStr@LastUpload-->'+size_format(newstartsize)+ '<br><!--constStr@ThisTime--><!--constStr@UploadStartAt-->:' +StartTime.toLocaleString()+'<br>' ;
 | ||
|                     }
 | ||
|                     var chunksize=5*1024*1024; // chunk size, max 60M. 每小块上传大小,最大60M,微软建议10M
 | ||
|                     if (totalsize>200*1024*1024) chunksize=10*1024*1024;
 | ||
|                     function readblob(start) {
 | ||
|                         var end=start+chunksize;
 | ||
|                         var blob = file.slice(start,end);
 | ||
|                         reader.readAsArrayBuffer(blob);
 | ||
|                     }
 | ||
|                     readblob(asize);
 | ||
| <!--LoginStart-->
 | ||
|                     var spark = new SparkMD5.ArrayBuffer();
 | ||
| <!--LoginEnd-->
 | ||
|                     reader.onload = function(e){
 | ||
|                         var binary = this.result;
 | ||
| <!--LoginStart-->
 | ||
|                         spark.append(binary);
 | ||
|                         if (asize < newstartsize) {
 | ||
|                             asize += chunksize;
 | ||
|                             readblob(asize);
 | ||
|                             return;
 | ||
|                         }
 | ||
| <!--LoginEnd-->
 | ||
|                         var xhr = new XMLHttpRequest();
 | ||
|                         xhr.open("PUT", url, true);
 | ||
|                         //xhr.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|                         bsize=asize+e.loaded-1;
 | ||
|                         xhr.setRequestHeader('Content-Range', 'bytes ' + asize + '-' + bsize +'/'+ totalsize);
 | ||
|                         xhr.upload.onprogress = function(e){
 | ||
|                             if (e.lengthComputable) {
 | ||
|                                 var tmptime = new Date();
 | ||
|                                 var tmpspeed = e.loaded*1000/(tmptime.getTime()-C_starttime.getTime());
 | ||
|                                 var remaintime = (totalsize-asize-e.loaded)/tmpspeed;
 | ||
|                                 label.innerHTML=StartStr+'<!--constStr@Upload--> ' +size_format(asize+e.loaded)+ ' / '+size_format(totalsize) + ' = ' + ((asize+e.loaded)*100/totalsize).toFixed(2) + '% <!--constStr@AverageSpeed-->:'+size_format((asize+e.loaded-newstartsize)*1000/(tmptime.getTime()-StartTime.getTime()))+'/s<br><!--constStr@CurrentSpeed--> '+size_format(tmpspeed)+'/s <!--constStr@Expect--> '+remaintime.toFixed(1)+'s';
 | ||
|                             }
 | ||
|                         }
 | ||
|                         var C_starttime = new Date();
 | ||
|                         xhr.onload = function(e){
 | ||
|                             if (xhr.status<500) {
 | ||
|                             var response=JSON.parse(xhr.responseText);
 | ||
|                             if (response['size']>0) {
 | ||
|                                 // contain size, upload finish. 有size说明是最终返回,上传结束
 | ||
|                                 var xhr3 = new XMLHttpRequest();
 | ||
|                                 xhr3.open("GET", '?action=del_upload_cache&filelastModified='+file.lastModified+'&filesize='+file.size+'&filename='+encodeURIComponent((file.webkitRelativePath||file.name)));
 | ||
|                                 xhr3.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|                                 xhr3.send(null);
 | ||
|                                 xhr3.onload = function(e){
 | ||
|                                     console.log(xhr3.responseText+','+xhr3.status);
 | ||
|                                 }
 | ||
| <!--LoginStart-->
 | ||
|                                 var filemd5 = spark.end();
 | ||
|                                 var xhr4 = new XMLHttpRequest();
 | ||
|                                 xhr4.open("GET", '?action=uploaded_rename&filename='+encodeURIComponent((file.webkitRelativePath||file.name))+'&filemd5='+filemd5);
 | ||
|                                 xhr4.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|                                 xhr4.send(null);
 | ||
|                                 xhr4.onload = function(e){
 | ||
|                                     console.log(xhr4.responseText+','+xhr4.status);
 | ||
|                                     var filename;
 | ||
|                                     //if (xhr4.status==200) filename = JSON.parse(xhr4.responseText)['name'];
 | ||
|                                     //if (xhr4.status==409) filename = filemd5 + (file.webkitRelativePath||file.name).substr((file.webkitRelativePath||file.name).indexOf('.'));
 | ||
|                                     filename = JSON.parse(xhr4.responseText)['name'];
 | ||
|                                     if (filename=='') {
 | ||
|                                         alert('<!--constStr@UploadErrorUpAgain-->');
 | ||
|                                         uploadbuttonshow();
 | ||
|                                         return;
 | ||
|                                     }
 | ||
|                                     var lasturl = location.href;
 | ||
|                                     if (lasturl.substr(lasturl.length-1)!='/') lasturl += '/';
 | ||
|                                     lasturl += filename + '?preview';
 | ||
|                                     //window.open(lasturl);
 | ||
|                                     document.getElementById('upfile_a_'+tdnum).href = lasturl;
 | ||
|                                     document.getElementById('upfile_a1_'+tdnum).href = filename;
 | ||
|                                     document.getElementById('upfile_cpbt_'+tdnum).style.display = "";
 | ||
|                                 }
 | ||
| <!--LoginEnd-->
 | ||
|                                 EndTime=new Date();
 | ||
|                                 MiddleStr = '<!--constStr@EndAt-->:'+EndTime.toLocaleString()+'<br>';
 | ||
|                                 if (newstartsize==0) {
 | ||
|                                     MiddleStr += '<!--constStr@AverageSpeed-->:'+size_format(totalsize*1000/(EndTime.getTime()-StartTime.getTime()))+'/s<br>';
 | ||
|                                 } else {
 | ||
|                                     MiddleStr += '<!--constStr@ThisTime--><!--constStr@AverageSpeed-->:'+size_format((totalsize-newstartsize)*1000/(EndTime.getTime()-StartTime.getTime()))+'/s<br>';
 | ||
|                                 }
 | ||
|                                 document.getElementById('upfile_td1_'+tdnum).innerHTML='<div style="color:green"><a href="<!--base_disk_path-->'+response.name+'?preview" id="upfile_a_'+tdnum+'" target="_blank">'+document.getElementById('upfile_td1_'+tdnum).innerHTML+'</a><br><a href="<!--base_disk_path-->'+response.name+'" id="upfile_a1_'+tdnum+'"></a><!--constStr@UploadComplete--><button onclick="CopyAllDownloadUrl(\'#upfile_a1_'+tdnum+'\');" id="upfile_cpbt_'+tdnum+'" <!--AdminStart--> style="display:none"<!--AdminEnd--> ><!--constStr@CopyUrl--></button></div>';
 | ||
|                                 label.innerHTML=StartStr+MiddleStr;
 | ||
|                                 uploadbuttonshow();
 | ||
| <!--AdminStart-->
 | ||
|                                 addelement(response);
 | ||
| <!--AdminEnd-->
 | ||
|                             } else {
 | ||
|                                 if (!response['nextExpectedRanges']) {
 | ||
|                                     label.innerHTML='<font color="red">'+xhr.responseText+'</font><br>';
 | ||
|                                 } else {
 | ||
|                                     var a=response['nextExpectedRanges'][0];
 | ||
|                                     asize=Number( a.slice(0,a.indexOf("-")) );
 | ||
|                                     readblob(asize);
 | ||
|                                 }
 | ||
|                             } } else readblob(asize);
 | ||
|                         }
 | ||
|                         xhr.send(binary);
 | ||
|                     }
 | ||
|                 } else {
 | ||
|                     if (window.location.pathname.indexOf('%23')>0||(file.webkitRelativePath||file.name).indexOf('%23')>0) {
 | ||
|                         label.innerHTML='<font color="red"><!--constStr@UploadFail23--></font>';
 | ||
|                     } else {
 | ||
|                         label.innerHTML='<font color="red">'+xhr2.responseText+'</font>';
 | ||
|                     }
 | ||
|                     uploadbuttonshow();
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| <!--UploadJsEnd-->
 | ||
| <!--ListEnd-->
 | ||
|     function operatediv_close(operate) {
 | ||
|         document.getElementById(operate+'_div').style.display='none';
 | ||
|         document.getElementById('mask').style.display='none';
 | ||
|     }
 | ||
| <!--AdminStart-->
 | ||
|     function logout() {
 | ||
|         document.cookie = "admin=; path=/";
 | ||
|         location.href = location.href;
 | ||
|     }
 | ||
| <!--IsFolderStart-->
 | ||
|     function showdiv(event,action,num) {
 | ||
|         var $operatediv=document.getElementsByName('operatediv');
 | ||
|         for ($i=0;$i<$operatediv.length;$i++) {
 | ||
|             $operatediv[$i].style.display='none';
 | ||
|         }
 | ||
|         document.getElementById('mask').style.display='none';
 | ||
|         //document.getElementById('mask').style.width=document.documentElement.scrollWidth+'px';
 | ||
|         document.getElementById('mask').style.height=document.documentElement.scrollHeight<window.innerHeight?window.innerHeight:document.documentElement.scrollHeight+'px';
 | ||
|         if (num=='') {
 | ||
|             var str='';
 | ||
|         } else {
 | ||
|             var str=document.getElementById('file_a'+num).innerText;
 | ||
|             if (str=='') {
 | ||
|                 str=document.getElementById('file_a'+num).getElementsByTagName("img")[0].alt;
 | ||
|                 if (str=='') {
 | ||
|                     alert('<!--constStr@GetFileNameFail-->');
 | ||
|                     operatediv_close(action);
 | ||
|                     return;
 | ||
|                 }
 | ||
|             }
 | ||
|             if (str.substr(-1)==' ') str=str.substr(0,str.length-1);
 | ||
|         }
 | ||
|         document.getElementById(action + '_div').style.display='';
 | ||
|         document.getElementById(action + '_label').innerText=str;//.replace(/&/,'&');
 | ||
|         document.getElementById(action + '_sid').value=num;
 | ||
|         document.getElementById(action + '_hidden').value=str;
 | ||
|         if (action=='rename') document.getElementById(action + '_input').value=str;
 | ||
|         var $e = event || window.event;
 | ||
|         var $scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
 | ||
|         var $scrollY = document.documentElement.scrollTop || document.body.scrollTop;
 | ||
|         var $x = $e.pageX || $e.clientX + $scrollX;
 | ||
|         var $y = $e.pageY || $e.clientY + $scrollY;
 | ||
|         if (action=='create') {
 | ||
|             document.getElementById(action + '_div').style.left=(document.body.clientWidth-document.getElementById(action + '_div').offsetWidth)/2 +'px';
 | ||
|             document.getElementById(action + '_div').style.top=(window.innerHeight-document.getElementById(action + '_div').offsetHeight)/2+$scrollY +'px';
 | ||
|         } else {
 | ||
|             if ($x + document.getElementById(action + '_div').offsetWidth > document.body.clientWidth) {
 | ||
|                 if (document.getElementById(action + '_div').offsetWidth > document.body.clientWidth) {
 | ||
|                     document.getElementById(action + '_div').offsetWidth=document.body.clientWidth+'px';
 | ||
|                     document.getElementById(action + '_div').style.left='0px';
 | ||
|                 } else {
 | ||
|                     document.getElementById(action + '_div').style.left=document.body.clientWidth-document.getElementById(action + '_div').offsetWidth+'px';
 | ||
|                 }
 | ||
|             } else {
 | ||
|                 document.getElementById(action + '_div').style.left=$x+'px';
 | ||
|             }
 | ||
|             document.getElementById(action + '_div').style.top=$y+'px';
 | ||
|         }
 | ||
|         document.getElementById(action + '_input').focus();
 | ||
|     }
 | ||
|     function submit_operate(str) {
 | ||
|         var num=document.getElementById(str+'_sid').value;
 | ||
|         var xhr = new XMLHttpRequest();
 | ||
|         xhr.open("GET", '?'+serializeForm(str+'_form'));
 | ||
|         xhr.setRequestHeader('x-requested-with','XMLHttpRequest');
 | ||
|         xhr.send(null);
 | ||
|         xhr.onload = function(e){
 | ||
|             var html;
 | ||
|             if (xhr.status<300) {
 | ||
|                 console.log(xhr.status+','+xhr.responseText);
 | ||
|                 if (str=='rename') {
 | ||
|                     html=JSON.parse(xhr.responseText);
 | ||
|                     var file_a = document.getElementById('file_a'+num);
 | ||
|                     file_a.innerText=html.name;
 | ||
|                     file_a.href = (file_a.href.substr(-8)=='?preview')?(html.name.replace(/#/,'%23')+'?preview'):(html.name.replace(/#/,'%23')+'/');
 | ||
|                 }
 | ||
|                 if (str=='move'||str=='delete') document.getElementById('tr'+num).parentNode.removeChild(document.getElementById('tr'+num));
 | ||
|                 if (str=='create') {
 | ||
|                     html=JSON.parse(xhr.responseText);
 | ||
|                     addelement(html);
 | ||
|                 }
 | ||
|             } else alert(xhr.status+'\n'+xhr.responseText);
 | ||
|             document.getElementById(str+'_div').style.display='none';
 | ||
|             document.getElementById('mask').style.display='none';
 | ||
|         }
 | ||
|         return false;
 | ||
|     }
 | ||
|     function addelement(html) {
 | ||
|         var tr1=document.createElement('tr');
 | ||
|         tr1.setAttribute('data-to',1);
 | ||
|         var td1=document.createElement('td');
 | ||
|         td1.setAttribute('class','file');
 | ||
|         var a1=document.createElement('a');
 | ||
|         a1.href='<!--base_disk_path--><!--Path-->'+html.name.replace(/#/,'%23');
 | ||
|         a1.innerText=html.name;
 | ||
|         a1.target='_blank';
 | ||
|         var td2=document.createElement('td');
 | ||
|         td2.setAttribute('class','updated_at');
 | ||
|         td2.innerText=html.lastModifiedDateTime.replace(/T/,' ').replace(/Z/,'');
 | ||
|         var td3=document.createElement('td');
 | ||
|         td3.setAttribute('class','size');
 | ||
|         td3.innerText=size_format(html.size);
 | ||
|         if (!!html.folder) {
 | ||
|             a1.href+='/';
 | ||
|             document.getElementById('tr0').parentNode.insertBefore(tr1,document.getElementById('tr0').nextSibling);
 | ||
|         }
 | ||
|         if (!!html.file) {
 | ||
|             a1.href+='?preview';
 | ||
|             a1.name='filelist';
 | ||
|             document.getElementById('tr0').parentNode.appendChild(tr1);
 | ||
|         }
 | ||
|         tr1.appendChild(td1);
 | ||
|         td1.appendChild(a1);
 | ||
|         tr1.appendChild(td2);
 | ||
|         tr1.appendChild(td3);
 | ||
|     }
 | ||
|     function getElements(formId) {
 | ||
|         var form = document.getElementById(formId);
 | ||
|         var elements = new Array();
 | ||
|         var tagElements = form.getElementsByTagName('input');
 | ||
|         for (var j = 0; j < tagElements.length; j++){
 | ||
|             elements.push(tagElements[j]);
 | ||
|         }
 | ||
|         var tagElements = form.getElementsByTagName('select');
 | ||
|         for (var j = 0; j < tagElements.length; j++){
 | ||
|             elements.push(tagElements[j]);
 | ||
|         }
 | ||
|         var tagElements = form.getElementsByTagName('textarea');
 | ||
|         for (var j = 0; j < tagElements.length; j++){
 | ||
|             elements.push(tagElements[j]);
 | ||
|         }
 | ||
|         return elements;
 | ||
|     }
 | ||
|     function serializeElement(element) {
 | ||
|         var method = element.tagName.toLowerCase();
 | ||
|         var parameter;
 | ||
|         if (method == 'select') {
 | ||
|             parameter = [element.name, element.value];
 | ||
|         }
 | ||
|         switch (element.type.toLowerCase()) {
 | ||
|             case 'submit':
 | ||
|             case 'hidden':
 | ||
|             case 'password':
 | ||
|             case 'text':
 | ||
|             case 'date':
 | ||
|             case 'textarea':
 | ||
|                 parameter = [element.name, element.value];
 | ||
|                 break;
 | ||
|             case 'checkbox':
 | ||
|             case 'radio':
 | ||
|                 if (element.checked){
 | ||
|                     parameter = [element.name, element.value];
 | ||
|                 }
 | ||
|                 break;
 | ||
|         }
 | ||
|         if (parameter) {
 | ||
|             var key = encodeURIComponent(parameter[0]);
 | ||
|             if (key.length == 0) return;
 | ||
|             if (parameter[1].constructor != Array) parameter[1] = [parameter[1]];
 | ||
|             var values = parameter[1];
 | ||
|             var results = [];
 | ||
|             for (var i = 0; i < values.length; i++) {
 | ||
|                 results.push(key + '=' + encodeURIComponent(values[i]));
 | ||
|             }
 | ||
|             return results.join('&');
 | ||
|         }
 | ||
|     }
 | ||
|     function serializeForm(formId) {
 | ||
|         var elements = getElements(formId);
 | ||
|         var queryComponents = new Array();
 | ||
|         for (var i = 0; i < elements.length; i++) {
 | ||
|             var queryComponent = serializeElement(elements[i]);
 | ||
|             if (queryComponent) {
 | ||
|                 queryComponents.push(queryComponent);
 | ||
|             }
 | ||
|         }
 | ||
|         return queryComponents.join('&');
 | ||
|     }
 | ||
| <!--IsFolderEnd-->
 | ||
| <!--AdminEnd-->
 | ||
| <!--LoginStart-->
 | ||
|     function login() {
 | ||
|         document.getElementById('mask').style.display='none';
 | ||
|             //document.getElementById('mask').style.width=document.documentElement.scrollWidth+'px';
 | ||
|         document.getElementById('mask').style.height=document.documentElement.scrollHeight<window.innerHeight?window.innerHeight:document.documentElement.scrollHeight+'px';
 | ||
|         document.getElementById('login_div').style.display='';
 | ||
|         document.getElementById('login_div').style.left=(document.body.clientWidth-document.getElementById('login_div').offsetWidth)/2 +'px';
 | ||
|         document.getElementById('login_div').style.top=(window.innerHeight-document.getElementById('login_div').offsetHeight)/2+document.body.scrollTop +'px';
 | ||
|         document.getElementById('login_input').focus();
 | ||
|     }
 | ||
| <!--LoginEnd-->
 | ||
| </script>
 | ||
| <script src="//unpkg.zhimg.com/ionicons@4.4.4/dist/ionicons.js"></script>
 | ||
| <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
 | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
 | ||
| <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
 | ||
| <!--customScript-->
 | ||
| </html>
 |