KodExplorer/plugins/zipView/app.php

48 lines
1.5 KiB
PHP
Executable File

<?php
class zipViewPlugin extends PluginBase{
function __construct(){
parent::__construct();
}
public function regiest(){
$this->hookRegiest(array(
'user.commonJs.insert' => 'zipViewPlugin.echoJs',
));
}
public function unzipList(){
$maxLength = 50000;
$path = $this->filePath($this->in['path']);
if(isset($this->in['index'])){
$download = isset($this->in['download'])?true:false;
KodArchive::filePreview($path,$this->in['index'],$download,$this->in['name']);
}else{
$cacheFile = TEMP_PATH.'zipView/'.hash_path($path).'.log';
if(file_exists($cacheFile)){
$content = file_get_contents($cacheFile);
$data = json_decode($content,true);
if( count($data) >= $maxLength ){
show_json("包含内容太多(".count($data)."项),请在本地打开查看;",false);
}
show_json($data);
}
mk_dir(get_path_father($cacheFile));
$result = KodArchive::listContent($path);
$data = json_encode($result['data']);
if( count($result['data']) >= $maxLength ){
show_json("包含内容太多(".count($result['data'])."项),请在本地打开查看;",false);
}
if($result['code'] && $data){
file_put_contents($cacheFile,$data);
show_json($result['data'],$result['code']);
}else{
show_json($result['data'],false);
}
}
}
public function echoJs($st,$act){
if($this->isFileExtence($st,$act)){
$this->echoFile('static/main.js');
}
}
}