百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[闲聊畅谈] 求个web程序在线打包程序php或asp都行,最好asp的 [复制链接]
查看:2971 | 回复:9

3867

主题

5万

帖子

1万

积分

落伍者(四季发财)

自己理解

Rank: 4

贡献
2784
鲜花
1207
注册时间
2009-9-18

落伍手机绑定

发表于 2013-6-27 14:55:26 | 显示全部楼层 |阅读模式 来自 中国福建漳州
@青云 @bestman
单选投票, 共有 0 人参与投票
0% (0)
0% (0)
您所在的用户组没有投票权限
LOGO设计 50元 微信amwdhqc 暗号mjj
回复

使用道具 举报

797

主题

6141

帖子

8389

积分

名誉斑竹

寻赚钱伙伴Q&WX→715287

Rank: 8Rank: 8

贡献
1731
鲜花
174
注册时间
2005-7-20

落伍者站长知道能手QQ绑定落伍微信绑定落伍手机绑定

发表于 2013-6-27 15:40:23 | 显示全部楼层 来自 中国山西太原
phpzip 在线打包压缩
  1. <?php
  2.    
  3. //验证密码
  4. $password = "123456";
  5.    
  6. ?>
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  10. <title>压缩文件</title>
  11. <style type="text/css">
  12. <!--
  13. body,td{
  14. font-size: 14px;
  15. color: #000000;
  16. }
  17. a {
  18. color: #000066;
  19. text-decoration: none;
  20. }
  21. a:hover {
  22. color: #FF6600;
  23. text-decoration: underline;
  24. }
  25. -->
  26. </style>
  27. </head>
  28.    
  29. <body>
  30. <form name="myform" method="post" action="<?=$_SERVER[PHP_SELF];?>">
  31. <font color="#FF0000"> faisun_zip -在线压缩ZIP文件程序 V1.0</font><br>
  32.    
  33. <div style="color:#FF9900">
  34.    <p>转载请注明:本程序由 <a href="http://www.softpure.com/" target="_blank">纯粹空间</a>(<a href="http://www.softpure.com/" target="_blank">http://www.softpure.com</a>) 提供,作者:faisun(<a href="mailto:faisun@sina.com">faisun@sina.com</a>).</p>
  35.       <p>使用方法:选定要压缩的文件或目录(包含子目录),即可开始压缩。</p>
  36.       <p>压缩的结果保留原来的目录结构。</p>
  37. </div>
  38. <?
  39. if(!$_REQUEST["myaction"]):
  40. ?>
  41. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  42. <tr>
  43.       <td width="11%">验证密码: </td>
  44.       <td width="89%"><input name="password" type="password" id="password" size="15">
  45.       (源文件中设定的密码) </td>
  46.     </tr>
  47.     <tr>
  48.       <td><input name="myaction" type="hidden" id="myaction" value="dolist"></td>
  49.       <td><input type="submit" name="Submit" value=" 进 入 "></td>
  50.     </tr>
  51. </table>
  52. <?
  53.    
  54. elseif($_REQUEST["myaction"]=="dolist"):
  55. if($_REQUEST['password'] != $password) die("输入的密码不正确,请重新输入。");
  56. echo "选择要压缩的文件或目录:<br>";
  57. $fdir = opendir('./');
  58. while($file=readdir($fdir)){
  59.    if($file=='.'|| $file=='..') continue;
  60.    echo "<input name='dfile[]' type='checkbox' value='$file' ".($file==basename(__FILE__)?"":"checked")."> ";
  61.    if(is_file($file)){
  62.     echo "文件: $file<br>";
  63.    }else{
  64.     echo "目录: $file<br>";
  65.    }
  66. }
  67. ?>
  68. <br>
  69. 压缩文件保存到目录:
  70. <input name="todir" type="text" id="todir" value="__zipfiles__" size="15">
  71. (留空为本目录,必须有写入权限)<br>
  72. 压缩文件名称:
  73. <input name="zipname" type="text" id="zipname" value="faisunzip.zip" size="15">
  74. (.zip)<br>
  75. <br>
  76. <input name="password" type="hidden" id="password" value="<?=$_POST['password'];?>">
  77. <input name="myaction" type="hidden" id="myaction" value="dozip">
  78. <input type='button' value='反选' onclick='selrev();'>
  79. <input type="submit" name="Submit" value=" 开始压缩 ">
  80. <script language='javascript'>
  81. function selrev() {
  82. with(document.myform) {
  83.    for(i=0;i<elements.length;i++) {
  84.     thiselm = elements[i];
  85.     if(thiselm.name.match(/dfile\[]/)) thiselm.checked = !thiselm.checked;
  86.    }
  87. }
  88. }
  89. </script>
  90. <?
  91.    
  92. elseif($_REQUEST["myaction"]=="dozip"):
  93.    
  94. set_time_limit(0);
  95.    
  96. class PHPzip{
  97.    
  98. var $file_count = 0 ;
  99. var $datastr_len   = 0;
  100. var $dirstr_len = 0;
  101. var $filedata = ''; //该变量只被类外部程序访问
  102. var $gzfilename;
  103. var $fp;
  104. var $dirstr='';
  105. /*
  106. 返回文件的修改时间格式.
  107. 只为本类内部函数调用.
  108. */
  109.     function unix2DosTime($unixtime = 0) {
  110.         $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
  111.    
  112.         if ($timearray['year'] < 1980) {
  113.         $timearray['year']    = 1980;
  114.         $timearray['mon']     = 1;
  115.         $timearray['mday']    = 1;
  116.         $timearray['hours']   = 0;
  117.         $timearray['minutes'] = 0;
  118.         $timearray['seconds'] = 0;
  119.         }
  120.    
  121.         return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) |
  122.                ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
  123.     }
  124.    
  125. /*
  126. 初始化文件,建立文件目录,
  127. 并返回文件的写入权限.
  128. */
  129. function startfile($path = 'faisun.zip'){
  130.    $this->gzfilename=$path;
  131.    $mypathdir=array();
  132.    do{
  133.     $mypathdir[] = $path = dirname($path);
  134.    }while($path != '.');
  135.    @end($mypathdir);
  136.    do{
  137.     $path = @current($mypathdir);
  138.     @mkdir($path);
  139.    }while(@prev($mypathdir));
  140.    
  141.    if($this->fp=@fopen($this->gzfilename,"w")){
  142.     return true;
  143.    }
  144.    return false;
  145. }
  146.    
  147. /*
  148. 添加一个文件到 zip 压缩包中.
  149. */
  150.     function addfile($data, $name){
  151.         $name     = str_replace('\\', '/', $name);
  152.      
  153.    if(strrchr($name,'/')=='/') return $this->adddir($name);
  154.      
  155.         $dtime    = dechex($this->unix2DosTime());
  156.         $hexdtime = '\x' . $dtime[6] . $dtime[7]
  157.                   . '\x' . $dtime[4] . $dtime[5]
  158.                   . '\x' . $dtime[2] . $dtime[3]
  159.                   . '\x' . $dtime[0] . $dtime[1];
  160.         eval('$hexdtime = "' . $hexdtime . '";');
  161.    
  162.         $unc_len = strlen($data);
  163.         $crc     = crc32($data);
  164.         $zdata   = gzcompress($data);
  165.         $c_len   = strlen($zdata);
  166.         $zdata   = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
  167.      
  168.    //新添文件内容格式化:
  169.         $datastr = "\x50\x4b\x03\x04";
  170.         $datastr .= "\x14\x00";            // ver needed to extract
  171.         $datastr .= "\x00\x00";            // gen purpose bit flag
  172.         $datastr .= "\x08\x00";            // compression method
  173.         $datastr .= $hexdtime;             // last mod time and date
  174.         $datastr .= pack('V', $crc);             // crc32
  175.         $datastr .= pack('V', $c_len);           // compressed filesize
  176.         $datastr .= pack('V', $unc_len);         // uncompressed filesize
  177.         $datastr .= pack('v', strlen($name));    // length of filename
  178.         $datastr .= pack('v', 0);                // extra field length
  179.         $datastr .= $name;
  180.         $datastr .= $zdata;
  181.         $datastr .= pack('V', $crc);                 // crc32
  182.         $datastr .= pack('V', $c_len);               // compressed filesize
  183.         $datastr .= pack('V', $unc_len);             // uncompressed filesize
  184.    
  185.    
  186.    fwrite($this->fp,$datastr); //写入新的文件内容
  187.    $my_datastr_len = strlen($datastr);
  188.    unset($datastr);
  189.      
  190.    //新添文件目录信息
  191.         $dirstr = "\x50\x4b\x01\x02";
  192.         $dirstr .= "\x00\x00";                // version made by
  193.         $dirstr .= "\x14\x00";                // version needed to extract
  194.         $dirstr .= "\x00\x00";                // gen purpose bit flag
  195.         $dirstr .= "\x08\x00";                // compression method
  196.         $dirstr .= $hexdtime;                 // last mod time & date
  197.         $dirstr .= pack('V', $crc);           // crc32
  198.         $dirstr .= pack('V', $c_len);         // compressed filesize
  199.         $dirstr .= pack('V', $unc_len);       // uncompressed filesize
  200.         $dirstr .= pack('v', strlen($name) ); // length of filename
  201.         $dirstr .= pack('v', 0 );             // extra field length
  202.         $dirstr .= pack('v', 0 );             // file comment length
  203.         $dirstr .= pack('v', 0 );             // disk number start
  204.         $dirstr .= pack('v', 0 );             // internal file attributes
  205.         $dirstr .= pack('V', 32 );            // external file attributes - 'archive' bit set
  206.         $dirstr .= pack('V',$this->datastr_len ); // relative offset of local header
  207.         $dirstr .= $name;
  208.      
  209.    $this->dirstr .= $dirstr; //目录信息
  210.      
  211.    $this -> file_count ++;
  212.    $this -> dirstr_len += strlen($dirstr);
  213.    $this -> datastr_len += $my_datastr_len;
  214.     }
  215.    
  216. function adddir($name){
  217.    $name = str_replace("\", "/", $name);
  218.    $datastr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
  219.      
  220.    $datastr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
  221.    $datastr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0);
  222.    
  223.    fwrite($this->fp,$datastr); //写入新的文件内容
  224.    $my_datastr_len = strlen($datastr);
  225.    unset($datastr);
  226.      
  227.    $dirstr = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
  228.    $dirstr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
  229.    $dirstr .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 );
  230.    $dirstr .= pack("V", 16 ).pack("V",$this->datastr_len).$name;
  231.      
  232.    $this->dirstr .= $dirstr; //目录信息
  233.    
  234.    $this -> file_count ++;
  235.    $this -> dirstr_len += strlen($dirstr);
  236.    $this -> datastr_len += $my_datastr_len;
  237. }
  238.    
  239.    
  240. function createfile(){
  241.    //压缩包结束信息,包括文件总数,目录信息读取指针位置等信息
  242.    $endstr = "\x50\x4b\x05\x06\x00\x00\x00\x00" .
  243.       pack('v', $this -> file_count) .
  244.       pack('v', $this -> file_count) .
  245.       pack('V', $this -> dirstr_len) .
  246.       pack('V', $this -> datastr_len) .
  247.       "\x00\x00";
  248.    
  249.    fwrite($this->fp,$this->dirstr.$endstr);
  250.    fclose($this->fp);
  251. }
  252. }
  253.    
  254.    
  255. if(!trim($_REQUEST[zipname])) $_REQUEST[zipname] = "faisunzip.zip"; else $_REQUEST[zipname] = trim($_REQUEST[zipname]);
  256. if(!strrchr(strtolower($_REQUEST[zipname]),'.')=='.zip') $_REQUEST[zipname] .= ".zip";
  257. $_REQUEST[todir] = str_replace('\\','/',trim($_REQUEST[todir]));
  258. if(!strrchr(strtolower($_REQUEST[todir]),'/')=='/') $_REQUEST[todir] .= "/";
  259. if($_REQUEST[todir]=="/") $_REQUEST[todir] = "./";
  260.    
  261. function listfiles($dir="."){
  262.    global $faisunZIP;
  263.    $sub_file_num = 0;
  264.    
  265.    if(is_file("$dir")){
  266.     if(realpath($faisunZIP ->gzfilename)!=realpath("$dir")){
  267.     $faisunZIP -> addfile(implode('',file("$dir")),"$dir");
  268.     return 1;
  269.     }
  270.     return 0;
  271.    }
  272.      
  273.    $handle=opendir("$dir");
  274.    while ($file = readdir($handle)) {
  275.      if($file=="."||$file=="..")continue;
  276.      if(is_dir("$dir/$file")){
  277.     $sub_file_num += listfiles("$dir/$file");
  278.      }
  279.      else {
  280.          if(realpath($faisunZIP ->gzfilename)!=realpath("$dir/$file")){
  281.         $faisunZIP -> addfile(implode('',file("$dir/$file")),"$dir/$file");
  282.      $sub_file_num ++;
  283.      }
  284.      }
  285.    }
  286.    closedir($handle);
  287.    if(!$sub_file_num) $faisunZIP -> addfile("","$dir/");
  288.    return $sub_file_num;
  289. }
  290.    
  291. function num_bitunit($num){
  292.    $bitunit=array(' B',' KB',' MB',' GB');
  293.    for($key=0;$key<count($bitunit);$key++){
  294.    if($num>=pow(2,10*$key)-1){ //1023B 会显示为 1KB
  295.     $num_bitunit_str=(ceil($num/pow(2,10*$key)*100)/100)." $bitunit[$key]";
  296.    }
  297.    }
  298.    return $num_bitunit_str;
  299. }
  300.    
  301. if(is_array($_REQUEST[dfile])){
  302.    $faisunZIP = new PHPzip;
  303.    if($faisunZIP -> startfile("$_REQUEST[todir]$_REQUEST[zipname]")){
  304.     echo "正在添加压缩文件...<br><br>";
  305.     $filenum = 0;
  306.     foreach($_REQUEST[dfile] as $file){
  307.      if(is_file($file)){
  308.       echo "文件: $file<br>";
  309.      }else{
  310.       echo "目录: $file<br>";
  311.      }
  312.      $filenum += listfiles($file);
  313.     }
  314.     $faisunZIP -> createfile();
  315.     echo "<br>压缩完成,共添加 $filenum 个文件.<br><a href='$_REQUEST[todir]$_REQUEST[zipname]'>$_REQUEST[todir]$_REQUEST[zipname] (".num_bitunit(filesize("$_REQUEST[todir]$_REQUEST[zipname]")).")</a>";
  316.    }else{
  317.     echo "$_REQUEST[todir]$_REQUEST[zipname] 不能写入,请检查路径或权限是否正确.<br>";
  318.    }
  319. }else{
  320.    echo "没有选择的文件或目录.<br>";
  321. }
  322.    
  323.    
  324. endif;
  325.    
  326. ?>
  327. </form>
  328. </body>
  329. </html>
复制代码
回复

使用道具 举报

797

主题

6141

帖子

8389

积分

名誉斑竹

寻赚钱伙伴Q&WX→715287

Rank: 8Rank: 8

贡献
1731
鲜花
174
注册时间
2005-7-20

落伍者站长知道能手QQ绑定落伍微信绑定落伍手机绑定

发表于 2013-6-27 15:41:49 | 显示全部楼层 来自 中国山西太原
PHPZIP 在线解压
  1. <?php
  2.    
  3. //设定密码
  4. $password = "rhl";
  5.    
  6. ?>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head profile="http://gmpg.org/xfn/11">
  10.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  11.     <meta http-equiv="Content-Language" content="zh-CN" />
  12.     <title>在线解压ZIP - PhpUnZip</title>
  13.     <style type="text/css">
  14.     <!--
  15.     body {
  16.         margin:0;
  17.         padding:0;
  18.         background:#ccc;
  19.         font:14px/24px "Microsoft Yahei",Verdana, Geneva, sans-serif
  20.     }
  21.     #wrapper {
  22.         width:760px;
  23.         margin:0 auto;
  24.         margin-top:10px;
  25.         background:#fff;
  26.         border:1px solid #888;
  27.     }
  28.     #header {
  29.         background:#f7f7f7;
  30.     }
  31.     #header h1 {
  32.         font:20px/30px Verdana, Geneva, sans-serif;
  33.         font-weight:bold;
  34.         text-shadow:0 0 1px #DDD;
  35.         text-align:center;
  36.     }
  37.     #main {
  38.         margin:20px;
  39.     }
  40.     #footer {
  41.         text-align:center;
  42.         font-size:12px;
  43.         color:#666;
  44.         border-top:1px solid #ccc;
  45.         position:relative;
  46.     }
  47.     #footer a {
  48.         text-decoration:none;
  49.         color:#666;
  50.     }
  51.     #footer a:hover {
  52.         text-decoration:underline;
  53.     }
  54.     #eincy {
  55.         width:82px;
  56.         height:36px;
  57.         background:url([img]http://www.eincy.com/logo/s.png[/img]);
  58.         position:absolute;
  59.         right:3px;
  60.         top:3px;
  61.     }
  62.     -->
  63.     </style>
  64. </head>
  65. <body>
  66. <div id="wrapper">
  67.     <div id="header">
  68.         <h1>PHP在线解压ZIP工具 - PHPUnZip</h1>
  69.     </div>
  70.     <div id="main">
  71.         <form name="myform" method="post" action="<?=$_SERVER[PHP_SELF];?>" enctype="multipart/form-data" onSubmit="return check_uploadObject(this);">
  72.             <?
  73.                 if(!$_REQUEST["myaction"]):
  74.             ?>
  75.                
  76.             <script language="javascript">
  77.             function check_uploadObject(form){
  78.                 if(form.password.value==''){
  79.                     alert('请输入密码.');
  80.                     return false;
  81.                 }
  82.                 return true;
  83.             }
  84.             </script>
  85.         <p id="choose">
  86.             选择ZIP文件:
  87.             <select name="zipfile">
  88.             <option value="" selected>- 请选择 -</option>
  89.             <?
  90.                 $fdir = opendir('./');
  91.                 while($file=readdir($fdir)){
  92.                     if(!is_file($file)) continue;
  93.                     if(preg_match('/\.zip$/mis',$file)){
  94.                         echo "<option value='$file'>$file</option>\r\n";
  95.                     }
  96.                 }
  97.             ?>
  98.             </select>
  99.             或上传文件: <input name="upfile" type="file" id="upfile" size="20">
  100.         </p>
  101.         <p id="dir">
  102.             解压到目录: <input name="todir" type="text" id="todir" value="" size="15">
  103.                   (留空为本目录,必须有写入权限)
  104.         </p>
  105.         <p id="password">
  106.             验证密码:<input name="password" type="password" id="password" size="15">
  107.         </p>
  108.         <p id="unzip">
  109.             <input name="myaction" type="hidden" id="myaction" value="dounzip">
  110.             <input type="submit" name="Submit" value=" 解 压 ">
  111.         </p>
  112.         <?
  113.            
  114.         elseif($_REQUEST["myaction"]=="dounzip"):
  115.            
  116.            
  117.         class zip
  118.         {
  119.            
  120.          var $total_files = 0;
  121.          var $total_folders = 0;
  122.            
  123.          function Extract ( $zn, $to, $index = Array(-1) )
  124.          {
  125.            $ok = 0; $zip = @fopen($zn,'rb');
  126.            if(!$zip) return(-1);
  127.            $cdir = $this->ReadCentralDir($zip,$zn);
  128.            $pos_entry = $cdir['offset'];
  129.            
  130.            if(!is_array($index)){ $index = array($index);  }
  131.            for($i=0; $index[$i];$i++){
  132.                 if(intval($index[$i])!=$index[$i]||$index[$i]>$cdir['entries'])
  133.                 return(-1);
  134.            }
  135.            for ($i=0; $i<$cdir['entries']; $i++)
  136.            {
  137.              @fseek($zip, $pos_entry);
  138.              $header = $this->ReadCentralFileHeaders($zip);
  139.              $header['index'] = $i; $pos_entry = ftell($zip);
  140.              @rewind($zip); fseek($zip, $header['offset']);
  141.              if(in_array("-1",$index)||in_array($i,$index))
  142.                 $stat[$header['filename']]=$this->ExtractFile($header, $to, $zip);
  143.            }
  144.            fclose($zip);
  145.            return $stat;
  146.          }
  147.            
  148.           function ReadFileHeader($zip)
  149.           {
  150.             $binary_data = fread($zip, 30);
  151.             $data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data);
  152.            
  153.             $header['filename'] = fread($zip, $data['filename_len']);
  154.             if ($data['extra_len'] != 0) {
  155.               $header['extra'] = fread($zip, $data['extra_len']);
  156.             } else { $header['extra'] = ''; }
  157.            
  158.             $header['compression'] = $data['compression'];$header['size'] = $data['size'];
  159.             $header['compressed_size'] = $data['compressed_size'];
  160.             $header['crc'] = $data['crc']; $header['flag'] = $data['flag'];
  161.             $header['mdate'] = $data['mdate'];$header['mtime'] = $data['mtime'];
  162.            
  163.             if ($header['mdate'] && $header['mtime']){
  164.              $hour=($header['mtime']&0xF800)>>11;$minute=($header['mtime']&0x07E0)>>5;
  165.              $seconde=($header['mtime']&0x001F)*2;$year=(($header['mdate']&0xFE00)>>9)+1980;
  166.              $month=($header['mdate']&0x01E0)>>5;$day=$header['mdate']&0x001F;
  167.              $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
  168.             }else{$header['mtime'] = time();}
  169.            
  170.             $header['stored_filename'] = $header['filename'];
  171.             $header['status'] = "ok";
  172.             return $header;
  173.           }
  174.            
  175.          function ReadCentralFileHeaders($zip){
  176.             $binary_data = fread($zip, 46);
  177.             $header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data);
  178.            
  179.             if ($header['filename_len'] != 0)
  180.               $header['filename'] = fread($zip,$header['filename_len']);
  181.             else $header['filename'] = '';
  182.            
  183.             if ($header['extra_len'] != 0)
  184.               $header['extra'] = fread($zip, $header['extra_len']);
  185.             else $header['extra'] = '';
  186.            
  187.             if ($header['comment_len'] != 0)
  188.               $header['comment'] = fread($zip, $header['comment_len']);
  189.             else $header['comment'] = '';
  190.            
  191.             if ($header['mdate'] && $header['mtime'])
  192.             {
  193.               $hour = ($header['mtime'] & 0xF800) >> 11;
  194.               $minute = ($header['mtime'] & 0x07E0) >> 5;
  195.               $seconde = ($header['mtime'] & 0x001F)*2;
  196.               $year = (($header['mdate'] & 0xFE00) >> 9) + 1980;
  197.               $month = ($header['mdate'] & 0x01E0) >> 5;
  198.               $day = $header['mdate'] & 0x001F;
  199.               $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
  200.             } else {
  201.               $header['mtime'] = time();
  202.             }
  203.             $header['stored_filename'] = $header['filename'];
  204.             $header['status'] = 'ok';
  205.             if (substr($header['filename'], -1) == '/')
  206.               $header['external'] = 0x41FF0010;
  207.             return $header;
  208.          }
  209.            
  210.          function ReadCentralDir($zip,$zip_name){
  211.             $size = filesize($zip_name);
  212.            
  213.             if ($size < 277) $maximum_size = $size;
  214.             else $maximum_size=277;
  215.                
  216.             @fseek($zip, $size-$maximum_size);
  217.             $pos = ftell($zip); $bytes = 0x00000000;
  218.                
  219.             while ($pos < $size){
  220.                 $byte = @fread($zip, 1); $bytes=($bytes << 8) | ord($byte);
  221.                 if ($bytes == 0x504b0506 or $bytes == 0x2e706870504b0506){ $pos++;break;} $pos++;
  222.             }
  223.                
  224.             $fdata=fread($zip,18);
  225.                
  226.             $data=@unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size',$fdata);
  227.                
  228.             if ($data['comment_size'] != 0) $centd['comment'] = fread($zip, $data['comment_size']);
  229.             else $centd['comment'] = ''; $centd['entries'] = $data['entries'];
  230.             $centd['disk_entries'] = $data['disk_entries'];
  231.             $centd['offset'] = $data['offset'];$centd['disk_start'] = $data['disk_start'];
  232.             $centd['size'] = $data['size'];  $centd['disk'] = $data['disk'];
  233.             return $centd;
  234.           }
  235.            
  236.          function ExtractFile($header,$to,$zip){
  237.             $header = $this->readfileheader($zip);
  238.                
  239.             if(substr($to,-1)!="/") $to.="/";
  240.             if($to=='./') $to = '';
  241.             $pth = explode("/",$to.$header['filename']);
  242.             $mydir = '';
  243.             for($i=0;$i<count($pth)-1;$i++){
  244.                 if(!$pth[$i]) continue;
  245.                 $mydir .= $pth[$i]."/";
  246.                 if((!is_dir($mydir) && @mkdir($mydir,0777)) || (($mydir==$to.$header['filename'] || ($mydir==$to && $this->total_folders==0)) && is_dir($mydir)) ){
  247.                     @chmod($mydir,0777);
  248.                     $this->total_folders ++;
  249.                     echo "<br /><input name='dfile[]' type='checkbox' value='$mydir' checked> <a href='$mydir' target='_blank'>目录: $mydir</a>
  250.         ";
  251.                 }
  252.             }
  253.                
  254.             if(strrchr($header['filename'],'/')=='/') return;   
  255.            
  256.             if (!($header['external']==0x41FF0010)&&!($header['external']==16)){
  257.                 if ($header['compression']==0){
  258.                     $fp = @fopen($to.$header['filename'], 'wb');
  259.                     if(!$fp) return(-1);
  260.                     $size = $header['compressed_size'];
  261.                   
  262.                     while ($size != 0){
  263.                         $read_size = ($size < 2048 ? $size : 2048);
  264.                         $buffer = fread($zip, $read_size);
  265.                         $binary_data = pack('a'.$read_size, $buffer);
  266.                         @fwrite($fp, $binary_data, $read_size);
  267.                         $size -= $read_size;
  268.                     }
  269.                     fclose($fp);
  270.                     touch($to.$header['filename'], $header['mtime']);
  271.                 }else{
  272.                     $fp = @fopen($to.$header['filename'].'.gz','wb');
  273.                     if(!$fp) return(-1);
  274.                     $binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']),
  275.                     Chr(0x00), time(), Chr(0x00), Chr(3));
  276.                        
  277.                     fwrite($fp, $binary_data, 10);
  278.                     $size = $header['compressed_size'];
  279.                   
  280.                     while ($size != 0){
  281.                         $read_size = ($size < 1024 ? $size : 1024);
  282.                         $buffer = fread($zip, $read_size);
  283.                         $binary_data = pack('a'.$read_size, $buffer);
  284.                         @fwrite($fp, $binary_data, $read_size);
  285.                         $size -= $read_size;
  286.                     }
  287.                   
  288.                     $binary_data = pack('VV', $header['crc'], $header['size']);
  289.                     fwrite($fp, $binary_data,8); fclose($fp);
  290.                
  291.                     $gzp = @gzopen($to.$header['filename'].'.gz','rb') or die("Cette archive est compress閑");
  292.                     if(!$gzp) return(-2);
  293.                     $fp = @fopen($to.$header['filename'],'wb');
  294.                     if(!$fp) return(-1);
  295.                     $size = $header['size'];
  296.                   
  297.                     while ($size != 0){
  298.                         $read_size = ($size < 2048 ? $size : 2048);
  299.                         $buffer = gzread($gzp, $read_size);
  300.                         $binary_data = pack('a'.$read_size, $buffer);
  301.                         @fwrite($fp, $binary_data, $read_size);
  302.                         $size -= $read_size;
  303.                     }
  304.                     fclose($fp); gzclose($gzp);
  305.                   
  306.                     touch($to.$header['filename'], $header['mtime']);
  307.                     @unlink($to.$header['filename'].'.gz');
  308.                        
  309.                 }
  310.             }
  311.                
  312.             $this->total_files ++;
  313.             echo "<br /><input name='dfile[]' type='checkbox' value='$to$header[filename]' checked> <a href='$to$header[filename]' target='_blank'>文件: $to$header[filename]</a>
  314.         ";
  315.            
  316.             return true;
  317.          }
  318.            
  319.         // end class
  320.         }
  321.            
  322.             set_time_limit(0);
  323.            
  324.             if ($_POST['password'] != $password) die("输入的密码不正确,请重新输入。");
  325.             if(!$_POST["todir"]) $_POST["todir"] = ".";
  326.             $z = new Zip;
  327.             $have_zip_file = 0;
  328.             function start_unzip($tmp_name,$new_name,$checked){
  329.                 global $_POST,$z,$have_zip_file;
  330.                 $upfile = array("tmp_name"=>$tmp_name,"name"=>$new_name);
  331.                 if(is_file($upfile[tmp_name])){
  332.                     $have_zip_file = 1;
  333.                     echo "
  334.         正在解压: <br /><input name='dfile[]' type='checkbox' value='$upfile[name]' ".($checked?"checked":"")."> $upfile[name]
  335.            
  336.         ";
  337.                     if(preg_match('/\.zip$/mis',$upfile[name])){
  338.                         $result=$z->Extract($upfile[tmp_name],$_POST["todir"]);
  339.                         if($result==-1){
  340.                             echo "
  341.         文件 $upfile[name] 错误.
  342.         ";
  343.                         }
  344.                         echo "
  345.         <br />完成,共建立 $z->total_folders 个目录,$z->total_files 个文件.
  346.            
  347.            
  348.         ";
  349.                     }else{
  350.                         echo "
  351.         $upfile[name] 不是 zip 文件.
  352.            
  353.         ";         
  354.                     }
  355.                     if(realpath($upfile[name])!=realpath($upfile[tmp_name])){
  356.                         @unlink($upfile[name]);
  357.                         rename($upfile[tmp_name],$upfile[name]);
  358.                     }
  359.                 }
  360.             }
  361.             clearstatcache();
  362.                
  363.             start_unzip($_POST["zipfile"],$_POST["zipfile"],0);
  364.             start_unzip($_FILES["upfile"][tmp_name],$_FILES["upfile"][name],1);
  365.            
  366.             if(!$have_zip_file){
  367.                 echo "
  368.         请选择或上传文件.
  369.         ";
  370.             }
  371.         ?>
  372.         <input name="password" type="hidden" id="password" value="<?=$_POST['password'];?>">
  373.         <input name="myaction" type="hidden" id="myaction" value="dodelete"><br />
  374.         <input name="按钮" type="button" value="返回" onClick="window.location='<?=$_SERVER[PHP_SELF];?>';">
  375.            
  376.         <input type='button' value='反选' onclick='selrev();'> <input type='submit' onclick='return confirm("删除选定文件?");' value='删除选定'>
  377.            
  378.         <script language='javascript'>
  379.         function selrev() {
  380.             with(document.myform) {
  381.                 for(i=0;i<elements.length;i++) {
  382.                     thiselm = elements[i];
  383.                     if(thiselm.name.match(/dfile\[]/))  thiselm.checked = !thiselm.checked;
  384.                 }
  385.             }
  386.         }
  387.         alert('完成.');
  388.         </script>
  389.         <?
  390.            
  391.         elseif($_REQUEST["myaction"]=="dodelete"):
  392.             set_time_limit(0);
  393.             if ($_POST['password'] != $password) die("输入的密码不正确,请重新输入。");
  394.                
  395.             $dfile = $_POST["dfile"];
  396.             echo "正在删除文件...
  397.            
  398.         ";
  399.             if(is_array($dfile)){
  400.                 for($i=count($dfile)-1;$i>=0;$i--){
  401.                     if(is_file($dfile[$i])){
  402.                         if(@unlink($dfile[$i])){
  403.                             echo "已删除文件: $dfile[$i]
  404.         ";
  405.                         }else{
  406.                             echo "删除文件失败: $dfile[$i]
  407.         ";
  408.                         }
  409.                     }else{
  410.                         if(@rmdir($dfile[$i])){
  411.                             echo "已删除目录: $dfile[$i]
  412.         ";
  413.                         }else{
  414.                             echo "删除目录失败: $dfile[$i]
  415.         ";
  416.                         }               
  417.                     }
  418.                        
  419.                 }
  420.             }
  421.             echo "
  422.         完成.
  423.            
  424.         <input type='button' value='返回' onclick="window.location='$_SERVER[PHP_SELF]';">
  425.            
  426.            
  427.                  <script language='javascript'>('完成.');</script>";
  428.            
  429.         endif;
  430.            
  431.         ?>
  432.           </form>
  433.     </div>
  434.     <div id="footer">
  435.         <p>&copy; 2011 </p>
  436.         <div id="eincy"></div>
  437.     </div>
  438. </div>
  439.    
  440. </body>
  441. </html>
复制代码
回复

使用道具 举报

53

主题

2340

帖子

2003

积分

落伍者(两全齐美)

Rank: 2

贡献
419
鲜花
2
注册时间
2013-2-23

落伍草根英雄落伍手机绑定

发表于 2013-6-27 15:45:37 | 显示全部楼层 来自 中国山东济南
html
回复

使用道具 举报

3867

主题

5万

帖子

1万

积分

落伍者(四季发财)

自己理解

Rank: 4

贡献
2784
鲜花
1207
注册时间
2009-9-18

落伍手机绑定

 楼主| 发表于 2013-6-27 17:20:05 | 显示全部楼层 来自 中国福建漳州
rhl88 发表于 2013-6-27 15:41
PHPZIP 在线解压

破空间不支持php........
唉 自己找了个asp的搞定了...省下好多工作
LOGO设计 50元 微信amwdhqc 暗号mjj
回复

使用道具 举报

797

主题

6141

帖子

8389

积分

名誉斑竹

寻赚钱伙伴Q&WX→715287

Rank: 8Rank: 8

贡献
1731
鲜花
174
注册时间
2005-7-20

落伍者站长知道能手QQ绑定落伍微信绑定落伍手机绑定

发表于 2013-6-27 18:27:49 | 显示全部楼层 来自 中国浙江绍兴
logo设计专家 发表于 2013-6-27 17:20
破空间不支持php........
唉 自己找了个asp的搞定了...省下好多工作

我的破空间挂了。我博客里收集不少代码。
回复

使用道具 举报

797

主题

6141

帖子

8389

积分

名誉斑竹

寻赚钱伙伴Q&WX→715287

Rank: 8Rank: 8

贡献
1731
鲜花
174
注册时间
2005-7-20

落伍者站长知道能手QQ绑定落伍微信绑定落伍手机绑定

发表于 2013-6-27 22:28:01 | 显示全部楼层 来自 中国浙江绍兴
logo设计专家 发表于 2013-6-27 18:31
你那个用bbs程序做的博客?

嗯。方便省事。破VPS 主服务器出问题了。
回复

使用道具 举报

62

主题

2335

帖子

9756

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
7338
鲜花
19
注册时间
2005-9-14
发表于 2013-6-28 00:58:38 | 显示全部楼层 来自 中国浙江宁波
随便找个ASP木马 就有这功能

评分

参与人数 1鲜花 +1 收起 理由
HTIDC-WILL + 1 你真能

查看全部评分

回复

使用道具 举报

4070

主题

2万

帖子

8041

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
5032
鲜花
73
注册时间
2009-11-21

QQ绑定落伍手机绑定

发表于 2013-6-28 01:22:22 | 显示全部楼层 来自 中国广东佛山
留个号,备用!
回复

使用道具 举报

3867

主题

5万

帖子

1万

积分

落伍者(四季发财)

自己理解

Rank: 4

贡献
2784
鲜花
1207
注册时间
2009-9-18

落伍手机绑定

 楼主| 发表于 2013-6-28 01:51:05 | 显示全部楼层 来自 中国福建漳州
古泊川 发表于 2013-6-28 00:58
随便找个ASP木马 就有这功能

可能我的马太旧了.
LOGO设计 50元 微信amwdhqc 暗号mjj
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-9-28 16:18 , Processed in 0.078591 second(s), 42 queries , Gzip On.

返回顶部