php在线文件与文件夹压缩实例代码
发布时间:2022-09-15 09:40 所属栏目:121 来源:互联网
导读:注明这款php文件压缩代码他要借助于zip.exe文件,所以我们要把zip.exe压缩文件给拿出来,实例代码如下: ?php if ( !IsSet($_GET[dirname]) ) { show_input_form() ; } else { // check if empty if ( emptyempty($_GET[dirname]) ) { hg_exit(请输入文件夹名!)
注明这款php文件压缩代码他要借助于zip.exe文件,所以我们要把zip.exe压缩文件给拿出来,实例代码如下: <?php if ( !IsSet($_GET['dirname']) ) { show_input_form() ; } else { // check if empty if ( emptyempty($_GET['dirname']) ) { hg_exit("请输入文件夹名!") ; } // check valid dirname if ( FALSE !== strpos($_GET['dirname'], "/") ) { hg_exit(""/" 是非法的文件夹名!") ; } if ( FALSE !== strstr($_GET['dirname'], "..") ) { hg_exit("".." 是非法的文件夹名!") ; } // check valid dir if ( !is_dir($_GET['dirname']) ) { hg_exit(""{$_GET['dirname']}" 不是一个有效的文件夹!") ; } $szData = "" ; $szInfo = "" ; $file_count = @ZipDir($_GET['dirname'], &$szData, &$szInfo) ; $info_size_16byte = @sprintf("%016d", @strlen($szInfo)) ; $szData = @sprintf("%016d",$file_count) . $info_size_16byte . $szInfo . $szData ; $filename = $_GET['dirname'] . ".dat" ; if ( function_exists(gzencode) ) { $szData = gzencode($szData) ; $filename .= ".gz" ; } Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length: " . strlen($szData)); Header("Content-Disposition: attachment; filename=$filename"); echo $szData ; } function show_input_form() { echo HtmlHead("文件打包") ; echo "<form name="input">n" . "请输入要打包的文件夹,注意,仅当前目录下的文件夹才可以下载!<p>n" . "<input name="dirname">n" . "<input type="button" value="确定" onClick="show_download_link(dirname.value);">n" . "</form>n" ; echo "<script>n" . "input.dirname.focus();n" . "function show_download_link(dir)n" . "{" . " var top = (screen.height-200)/2 ;n" . " var left = (screen.width-300)/2 ;n" . " newwin=window.open('', '', 'width=300,height=200,top=' + top + ',left=' + left + ', resizable=0,scrollbars=auto');n" . " url = "{$_SERVER['PHP_SELF']}" + "?dirname=" + dir ;n" . " newwin.document.write('<a href=' + url + '>点击此链接下载,<br>或者右键点击此处选择"另存为"</a>');n" . "}" . "</script>n" ; echo HtmlFoot() ; } function ZipDir($szDirName, &$szData, &$szInfo) { // write dir header $szInfo .= "$szDirName|[dir]n" ; $file_count = 0 ; $hDir = OpenDir($szDirName) ; while ( $file = ReadDir($hDir) ) { if ( $file=="." || $file==".." ) continue ; $szCurFile = "$szDirName/$file" ; if ( Is_Dir($szCurFile) ) { $file_count += ZipDir($szCurFile, &$szData, &$szInfo) ; } else if ( Is_File($szCurFile) ) { $hCurFile = fopen($szCurFile, "rb") ; $size = filesize($szCurFile) ; $szStream = fread( $hCurFile, $size ) ; fclose($hCurFile) ; $file_count++ ; // write info $szInfo .= "$szCurFile|$sizen" ; // write data $szData .= $szStream ; } } // write dir footer $szInfo .= "$szDirName|[/dir]n" ; return $file_count ; } function hg_exit($str) { echo HtmlHead("Error, exit!") ; echo "<h5>" . $str . "</h5>" ; echo HtmlFoot() ; exit ; } function HtmlHead($title) { return "<html>nn<head>n" . "<meta http-equiv="Content-Type" content="text/html; charset=gb2312">n" . "<style type="text/css教程">n" . "body,input,td{font:12px verdana}n" . "</style>n" . "</head>nn<body>nn" ; } function HtmlFoot() { return Copyright() . "n</body>nn</html>" ; } function Copyright() { return "<center><font size="5" face="楷体_GB2312" color="red">使用完请立即删除本文件,以避免被其它人发现使用!</font></center>n" . "<br><hr color="#003388">n" . "<center>n" . "<p style="font-family:verdana; font-size:12px">Contact us: n" . "<a href="http://www.phpfensi.com/" target="_blank">http://www.phpfensi.com/</a></p>n" . "</center>n" . "</body>n" . "n" . "</html>" ; } ?> (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读