迟来的生日礼物(资源管理器修改于18日-21日)_____送给我
时间:2007-01-21
来源:互联网
帐号admin
密码admin
修改于18日-21日
增加了两个文件
task.php和js文件
这次几乎所有文件都大改了,
除了task.php、js文件、edit.php比较乱(未来打算把task.php和edit.php合并成一个文件,优化一下代码),
其它的自我感觉良好,尤其是function.php文件,想打击偶的不要和我说
还有,相比前两个版本,唯一不足的是只兼容IE浏览器,希望高手指点,能突破浏览器的限制
由于修改量大,暂时比较凌乱,不过我在寒假时间还会修改,
我家在农村,电脑没上网,
寒假不能到这个论坛来走走了,
各位支持我的,下载我的代码后,有兴趣看看我的代码,提点建议,这是我最希望的
来年开学希望能看到你们许多建议...
[ 本帖最后由 muqiao 于 2007-1-22 19:21 编辑 ]

2007-1-21 07:38

2007-1-21 07:38

2007-1-21 07:38

2007-1-21 07:38

2007-1-22 19:21, 下载次数: 493
作者: muqiao 发布时间: 2007-01-21
#文件任务
#
#编辑(双击/右键打开) 判断文件是否可编辑 -true -> (已搞定)
-false-> 弹出非警告框
#拷贝 session记录粘贴任务 $_SESSION['readystick'][0] = $_POST['path'];//路径 $_SESSION['readystick'][1] = "copy";//类型
#剪切 判断文件是否可移动 -true ->
session记录粘贴任务$_SESSION['readystick'][0] = $_POST['path'];//路径$_SESSION['readystick'][1] = "scissor";//类型
-false-> 弹出警告框
#回收 判断文件是否可回收 -true -> 弹出是否警告框
-false-> 弹出非警告框
#删除 判断文件是否可删除 -true -> 弹出是否警告框
-false-> 弹出非警告框
#重命名 判断文件是否可重命名-true -> 弹出重名名窗口 -> 提交重命名
-false-> 弹出非警告框
#属性 表单形式传递(path)到php文件->返回content->弹出content窗口
#下载 直接下载
#
#文件夹任务
#
#打开 window.location()
#拷贝 session记录粘贴任务 $_SESSION['readystick'][0] = $_POST['path'];//路径 $_SESSION['readystick'][1] = "copy";//类型
#剪切 判断文件是否可移动 -true ->
session记录粘贴任务$_SESSION['readystick'][0] = $_POST['path'];//路径$_SESSION['readystick'][1] = "scissor";//类型
-false-> 弹出警告框
#删除 判断文件夹是否可删除-true -> 弹出是否警告框
-false-> 弹出非警告框
#回收 判断文件是否可回收 -true -> 弹出是否警告框
-false-> 弹出非警告框
#重命名 判断是否可重命名 -true -> 弹出重名名窗口 -> 提交重命名
-false-> 弹出非警告框
#属性 表单形式传递(path)到php文件->返回content->弹出content窗口
#打包下载 表单形式传递(path)到php文件->打包成文件pathname.zip->直接下载pathname.zip
#
#回收站任务
#
#打开 (已搞定)
#属性 表单形式传递(path)到php文件->返回content->弹出content窗口
#清空 弹出是否警告框->delpath函数清空
#打包下载 表单形式传递(path)到php文件->打包成文件pathname.zip->直接下载pathname.zip
#
#body任务
#
#新文件夹 弹出新文件夹名窗口->创建文件夹-success->header(当前path)
-failed ->返回警告content到parent->弹出content窗口
#新文件 弹出新文件名窗口 ->创建文件 -success->header(当前path)
-failed ->返回警告content到parent->弹出content窗口
#粘贴 判断是否有粘贴任务-> -true -> 开始粘贴->unset(session粘贴任务)
-false-> 弹出无粘贴任务警告框
#上传文件 弹出设定要上传的文件数的窗口->完毕返回未上传、成功上传的content到parent->弹出content窗口
#属性 表单形式传递(path)到php文件->返回content->弹出content窗口
#刷新 location.reload();
作者: muqiao 发布时间: 2007-01-21
作者: thankwsx 发布时间: 2007-01-21
学习学习
作者: yang_ysb 发布时间: 2007-01-21

作者: cator 发布时间: 2007-01-21
如果没有空间的话发站内短信给偶,我把它放我空间上去。
作者: Phzzy 发布时间: 2007-01-21
作者: suturn-ly 发布时间: 2007-01-21
引用:
原帖由 Phzzy 于 2007-1-21 12:38 发表给个演示地址
如果没有空间的话发站内短信给偶,我把它放我空间上去。
作者: finian 发布时间: 2007-01-21
PHP代码:
class ZipAllFloder{//压缩整个目录var $cachelist = array();
var $datasec = array();
var $ctrl_dir = array();
var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
var $old_offset = 0;
function StartWork($dir){
$result = $this->GetList($dir);
$this->ClearCache();
return $result;
}
function ReadAndExport($filelist,$zipfilename){
if (count($filelist)>0){
foreach($filelist as $filename){
if (is_file($filename)){
$fp = fopen ($filename, "r");
$content = @fread ($fp,filesize($filename));
fclose ($fp);
$filename = basename($filename);
$this -> addFile($content, $filename);
}
}
}else{
$this -> addFile("This folder have none a single file!","nofile.log");
}
$out = $this -> outfile();
$this -> IniVars();
$fp = fopen($zipfilename,"w");
fwrite($fp,$out,strlen($out));
fclose($fp);
$this -> cachelist[] = $zipfilename;
}
function GetList($dir){
if (file_exists($dir)){
$handle = opendir($dir);
while($files = readdir($handle)){
if (($files==".")||($files=="..")) continue;
if(is_dir($dir."/".$files)){
$this -> GetList($dir."/".$files);
}else{
$filelist[] = $dir."/".$files;
}
}
closedir($handle);
$zipfilename = dirname($dir)."/[FOLDER]".basename($dir).".zip";
$this -> ReadAndExport($filelist,$zipfilename);
}
return $zipfilename;
}
function ClearCache(){
if($num = count($this ->cachelist)){
for($i=0;$i<$num-1;$i++){
@unlink($this ->cachelist[$i]);
}
}
}
function IniVars(){
$this -> datasec = array();
$this -> ctrl_dir = array();
$this -> eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
$this -> old_offset = 0;
}
function unix2DosTime($unixtime = 0) {
$timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
if ($timearray['year'] < 1980) {
$timearray['year'] = 1980;
$timearray['mon'] = 1;
$timearray['mday'] = 1;
$timearray['hours'] = 0;
$timearray['minutes'] = 0;
$timearray['seconds'] = 0;
}
return (($timearray['year']-1980)<<25)|($timearray['mon']<<21)|($timearray['mday']<<16)|($timearray['hours']<<11)|($timearray['minutes']<<5)|($timearray['seconds']>>1);
}
function addFile($data, $name, $time = 0){
$name = str_replace('\\', '/', $name);
$dtime = dechex($this->unix2DosTime($time));
$hexdtime = '\x' . $dtime[6] . $dtime[7]
. '\x' . $dtime[4] . $dtime[5]
. '\x' . $dtime[2] . $dtime[3]
. '\x' . $dtime[0] . $dtime[1];
eval('$hexdtime = "' . $hexdtime . '";');
$fr = "\x50\x4b\x03\x04";
$fr .= "\x14\x00";
$fr .= "\x00\x00";
$fr .= "\x08\x00";
$fr .= $hexdtime;
$unc_len = strlen($data);
$crc = crc32($data);
$zdata = gzcompress($data);
$c_len = strlen($zdata);
$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
$fr .= pack('V', $crc);
$fr .= pack('V', $c_len);
$fr .= pack('V', $unc_len);
$fr .= pack('v', strlen($name));
$fr .= pack('v', 0);
$fr .= $name;
$fr .= $zdata;
$fr .= pack('V', $crc);
$fr .= pack('V', $c_len);
$fr .= pack('V', $unc_len);
$this -> datasec[] = $fr;
$new_offset = strlen(implode('', $this->datasec));
$cdrec = "\x50\x4b\x01\x02";
$cdrec .= "\x00\x00";
$cdrec .= "\x14\x00";
$cdrec .= "\x00\x00";
$cdrec .= "\x08\x00";
$cdrec .= $hexdtime;
$cdrec .= pack('V', $crc);
$cdrec .= pack('V', $c_len);
$cdrec .= pack('V', $unc_len);
$cdrec .= pack('v', strlen($name) );
$cdrec .= pack('v', 0 );
$cdrec .= pack('v', 0 );
$cdrec .= pack('v', 0 );
$cdrec .= pack('v', 0 );
$cdrec .= pack('V', 32 );
$cdrec .= pack('V', $this -> old_offset );
$this -> old_offset = $new_offset;
$cdrec .= $name;
$this -> ctrl_dir[] = $cdrec;
}
function outfile(){
$data = implode('', $this -> datasec);
$ctrldir = implode('', $this -> ctrl_dir);
return
$data .
$ctrldir .
$this -> eof_ctrl_dir .
pack('v', sizeof($this -> ctrl_dir)) .
pack('v', sizeof($this -> ctrl_dir)) .
pack('V', strlen($ctrldir)) .
pack('V', strlen($data)) .
"\x00\x00";
}
}
作者: muqiao 发布时间: 2007-01-22
作者: muqiao 发布时间: 2007-01-24
相应的task.php文件中有几个要改
PHP代码:
class ZipAllFloder{//压缩文件夹var $datasec = array();
var $ctrl_dir = array();
var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
var $old_offset = 0;
var $dirs = array(".");
function IniVars(){//初始化变量
$this -> datasec = array();
$this -> ctrl_dir = array();
$this -> eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
$this -> old_offset = 0;
$this -> dirs = array(".");
}
function ZipFolder($dir,$zipfilename){//压缩一个文件夹
if(substr($dir,0,2)=="./"){
$dir = substr($dir,2);
}elseif(substr($dir,0,1)=="/"){
$dir = substr($dir,1);
}
$this->AddFolderContent($dir);
$out = $this -> get_file();
$this -> IniVars();
$fp = fopen($zipfilename,"w");
fwrite($fp,$out,strlen($out));
fclose($fp);
}
function AddFolderContent($dir){//添加文件夹中文件列表到 $this->dirs
if(is_dir($dir)){
if(!in_array($dir,$this->dirs)){
$this->add_Dir($dir);
}
$handle = opendir($dir);
while($files = readdir($handle)){
if (($files==".")||($files=="..")) continue;
if(is_dir($dir."/".$files)){
$this->AddFolderContent($dir."/".$files);
}else{
$fp = fopen ($dir."/".$files,"r");
$content = @fread ($fp,filesize($dir."/".$files));
fclose ($fp);
$this->add_File($content,$dir."/".$files);
}
}
closedir($handle);
}
}
function ZipFileArray($files,$zipfilename){//混杂压缩 文件和文件夹并排压缩
if(!is_array($files)){
$files = array($files);
}
for($i=0;$files[$i];$i++){//这儿用的很妙!我看到这种使用方法时,大吃一惊,第一次在这用
$fn = $files[$i];
if(substr($fn,0,2)=="./"){
$fn = substr($fn,2);
}elseif(substr($fn,0,1)=="/"){
$fn = substr($fn,1);
}
if(!in_array(dirname($fn),$this->dirs)){
$this->add_Dir(dirname($fn));
}
if(basename($fn)&&is_file($fn)){
$fp = fopen ($fn, "r");
$data = @fread ($fp,filesize($fn));
fclose ($fp);
$this->add_File($data,$fn);
}elseif(basename($fn)&&is_dir($fn)){
$this->AddFolderContent($fn);
}
}
$out = $this -> get_file();
$this -> IniVars();
$fp = fopen($zipfilename,"w");
fwrite($fp,$out,strlen($out));
fclose($fp);
}
function get_file(){//获得压缩文件数据
$data = implode('', $this -> datasec);
$ctrldir = implode('', $this -> ctrl_dir);
return $data . $ctrldir . $this -> eof_ctrl_dir .
pack('v', sizeof($this -> ctrl_dir)).pack('v', sizeof($this -> ctrl_dir)).
pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00";
}
function add_dir($name){
$name = str_replace("\\", "/", $name);
$fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
$fr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
$fr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0);
$this -> datasec[] = $fr;
$new_offset = strlen(implode("", $this->datasec));
$cdrec = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
$cdrec .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
$cdrec .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 );
$ext = "\xff\xff\xff\xff";
$cdrec .= pack("V", 16 ).pack("V", $this -> old_offset ).$name;
$this -> ctrl_dir[] = $cdrec;
$this -> old_offset = $new_offset;
$this -> dirs[] = $name;
}
function add_File($data, $name, $compact = 1){
$name = str_replace('\\', '/', $name);
$dtime = dechex($this->DosTime());
$hexdtime = '\x' . $dtime[6] . $dtime[7].'\x'.$dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3].'\x'.$dtime[0].$dtime[1];
eval('$hexdtime = "' . $hexdtime . '";');
if($compact){
$fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00".$hexdtime;
}else{
$fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00".$hexdtime;
}
$unc_len = strlen($data); $crc = crc32($data);
if($compact){
$zdata = gzcompress($data); $c_len = strlen($zdata);
$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
}else{
$zdata = $data;
}
$c_len=strlen($zdata);
$fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len);
$fr .= pack('v', strlen($name)).pack('v', 0).$name.$zdata;
$fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len);
$this -> datasec[] = $fr;
$new_offset = strlen(implode('', $this->datasec));
if($compact){
$cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00";
}else{
$cdrec = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00";
}
$cdrec .= $hexdtime.pack('V', $crc).pack('V', $c_len).pack('V', $unc_len);
$cdrec .= pack('v', strlen($name) ).pack('v', 0 ).pack('v', 0 );
$cdrec .= pack('v', 0 ).pack('v', 0 ).pack('V', 32 );
$cdrec .= pack('V', $this -> old_offset );
$this -> old_offset = $new_offset;
$cdrec .= $name;
$this -> ctrl_dir[] = $cdrec;
return true;
}
function DosTime() {
$timearray = getdate();
if ($timearray['year'] < 1980) {
$timearray['year'] = 1980; $timearray['mon'] = 1;
$timearray['mday'] = 1; $timearray['hours'] = 0;
$timearray['minutes'] = 0; $timearray['seconds'] = 0;
}
return (($timearray['year']-1980)<<25)|($timearray['mon']<<21)|($timearray['mday']<<16)|($timearray['hours']<<11)|($timearray['minutes']<<5)|($timearray['seconds']>>1);
}
}
作者: muqiao 发布时间: 2007-01-24

作者: yyb 发布时间: 2007-02-08
作者: 绿竹居 发布时间: 2007-02-08
作者: 淘园君 发布时间: 2007-02-15



作者: betterp 发布时间: 2007-03-08
把那个文件的根目录可以自定义。而不是一定要用这个php文件存放的路径做为根目录
作者: betterp 发布时间: 2007-03-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28