http 协议下载类(自家用)

 更新时间:2016年11月25日 16:14  点击:1758
这个类不安全,需要修改
<?php
/**
*HttpDownLoad
*
*@author sanshi
QQ:35047205
Email:sanshi0815@tom.com
MSN:sanshi0815@tom.com
*
*@version 1.0.0 2005/07/10
*
*@deprecated
1.http协议下载

*/
class HttpDownLoad
{
var $rootDom="D:/jsp/";//设定下载目录,需要绝对路径
var $openDir; //打开绝对的路径
var $open; //将要打开的目录
var $enter=3; //设置换行
var $table_w=800; //设置表格宽度
var $div=array(); //设置目录存放数组
var $file=array(); //设置文件存放数组
var $link=array(); //设置连接文件数组
//构造函数
function HttpDownLoad()
{
$this->getAll();
$this->head();
$this->printArray($this->dir,"目录");
$this->printArray($this->file,"文件");
$this->foot();
}
//设置输出标题头
function head()
{
echo "<table width='".$this->table_w."' align='center'><tr><td height='20%'>&nbsp;</td></tr><tr>".
"<td align='center'><FONT SIZE='8' COLOR=''>www.litou.com 专用版</FONT></td>".
"</tr><tr><td>作&nbsp;&nbsp;&nbsp;&nbsp;者:&nbsp;叁&nbsp;&nbsp;石</td></tr>".
"<tr><td>联系方式:sanshi0815@tom.com</td></tr>".
"<tr><td>&nbsp&nbsp;Q&nbsp;&nbsp;Q&nbsp;&nbsp;:&nbsp;35047205</td></tr></table>";
}
//设置结束尾
function foot()
{
}
//取得将要打开的目录
function getOpen()
{
$open=$_GET["dir"];
$this->open=$open;
if(!isset($open)||empty($open))
{
<?php
class CreateHtml
{
function mkdir( $prefix= 'article' )
{
$y = date('Y');
$m = date('m');
$d = date('d');
$p=DIRECTORY_SEPARATOR;
$filePath='article'.$p.$y.$p.$m.$p.$d;
$a=explode($p,$filePath);
foreach ( $a as $dir)
{
$path.=$dir.$p;
if(!is_dir($path))
{
//echo '没有这个目录'.$path;
mkdir($path,0755);
}
}
return $filePath.$p;
}
function start()
{
ob_start();
}
function end()
{
$info = ob_get_contents();
$fileId = '12345';
$postfix = '.html';
$path = $this->mkdir($prefix= 'article');
$fileName = time().'_'.$fileId.$postfix;
$file=fopen($path.$fileName,'w ');
fwrite($file,$info);
fclose($file);
ob_end_flush();
}
}
?>
<?php
$s=new CreateHtml();
$s->start();
?>
<html>
<body>
asdfasdfasdfasdfasdfasdfasdfasdfasdf<br>
adfasdfasdf<br>
</body>>
</html>
<?php
$s->end();
?>

<?
$arr=getimagesize("images/album_01.gif");
echo $arr[3];
$strarr=explode(""",$arr[3]);
echo $strarr[1];
?>
<HTML>
<HEAD>
<TITLE>演示图片等比例缩小</TITLE>
<script>
function Wa_SetImgAutoSize(img)
{
//var img=document.all.img1;//获取图片
var MaxWidth=200;//设置图片宽度界限
var MaxHeight=100;//设置图片高度界限
var HeightWidth=img.offsetHeight/img.offsetWidth;//设置高宽比
var WidthHeight=img.offsetWidth/img.offsetHeight;//设置宽高比
alert("test" img.offsetHeight img.fileSize);
if(img.offsetHeight>1) alert(img.offsetHeight);
if(img.readyState!="complete"){
return false;//确保图片完全加载
}
if(img.offsetWidth>MaxWidth){
img.width=MaxWidth;
img.height=MaxWidth*HeightWidth;
}
if(img.offsetHeight>MaxHeight){
img.height=MaxHeight;
img.width=MaxHeight*WidthHeight;
}
}
function CheckImg(img)
{
var message="";
var MaxWidth=1;//设置图片宽度界限
var MaxHeight=1;//设置图片高度界限

if(img.readyState!="complete"){
return false;//确保图片完全加载
}
if(img.offsetHeight>MaxHeight) message ="高度超额:" img.offsetHeight;
if(img.offsetWidth>MaxWidth) message ="宽度超额:" img.offsetWidth;
if(message!="") alert(message);
}
</script>
</HEAD>
<BODY>
<img src="images/frequency.gif" border=0 id="img1" onload="CheckImg(this);">
<br>
<input id=inp type="file" onpropertychange="img1.src=this.value;">
</BODY>
</HTML>


<?php
/**
* Object
* base class
* @version 1.0.0 (Mon Aug 01 18:43:24 CST 2005)
* @author sanshi
*/
class Object
{
/* 是否输出调试信息 */
var $debug = true;

/**
* Object
* @version 1.0.0 (Mon Aug 01 18:49:48 CST 2005)
* @author sanshi
* @deprecated 析构方法
*
* @return void
*/
function Object()
{
//用户是否从主页进入,做判断
if ( !defined( 'INDEX' ) )
{
die( "Hacking attempt" );
}
//echo 'create Object success!';
}

/**
* msg_die
* @version 1.0.0 (Mon Aug 01 18:52:43 CST 2005)
* @author sanshi
* @deprecated 调试信息输出
* @param string
* @return void
*/
function msg_die( $info , $file , $line )
{
if( $this->debug )
{
$format = "There is happen error information: %s .".
" the file name: %s , on line : %s . ";
printf( $format , $info , $file , $line );
$error = debug_backtrace();
print_r ( $error[0] );
}
}

/**
* setDebug
* @version 1.0.0 (Mon Aug 01 18:56:45 CST 2005)
* @author sanshi
* @deprecated 设置是否输出调试信息
* @param boolean true or false
* @return void
*/
function setDebug( $bool )
{
$this->debug = is_bool( $bool ) ? $bool : false ;
}

/**
* getDebug
* @version 1.0.0 (Mon Aug 01 19:01:22 CST 2005)
* @author sanshi
* @deprecated 查看是否打开调试信息
* @param void
* @return boolean
*/
function getDebug()
{
return $this->debug;
}
}
?>

  大致就是不知道目录下面又多少层目录, 也不知道又多少文件, 需要统计占用空间大小, 这个可以用在 相册/数据库占用/网络U盘 等程序中.
  大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里.
<?
/**
* File: fetch user directory use size
* Author: heiyeluren <heiyeluren_AT_gmail_com>
* Create: 2005-9-19 16:20
* Modifed: 2005-9-19 16:41
*/
/*** 基本函数 ***/
//计算目录大小
function countDirSize($dir)
{
$handle = opendir($dir);
while (false!==($FolderOrFile = readdir($handle)))
{
if($FolderOrFile != "." && $FolderOrFile != "..")
{
if(is_dir("$dir/$FolderOrFile")) {
$sizeResult = getDirSize("$dir/$FolderOrFile");
} else {
$sizeResult = filesize("$dir/$FolderOrFile");
}
}
}
closedir($handle);
return $sizeResult;
}
//保存用户文件大小
function saveDirSize($userDir)
{
$userDirSize = countDirSize($userDir);
if (!$fp = fopen($userDir."/dir_size.txt", "w ")) {
die("Open file failed");
} else {
fwrite($fp, $dirSize);
}
}
//获取用户目录的大小
function getDirSize($userDir)
{
$user = addslashes($userDir);
$sizeFile = $userDir."/dir_size.txt";
if (!$fp = fopen($sizeFile, "r") {
return 0;
} else {
$dirSize = fread($fp, filesize($sizeFile));
}
return $dirSize;
}
/*** 调用实例 ***/
$user = "heiyeluren";
$userPath = "./user/".$user;
//如果用户执行了删除或者上传文件的操作就重新获取目录大小
if ($action == "upload" || $action == "delete") {
saveDirSize($userPath);
}
$userDirSize = getDirSize($userPath)/1024;
echo "用户: ".$user;
echo "占用空间: ".$userDirSize;
?>


[!--infotagslink--]

相关文章

  • php svn操作类

    以前我们开发大型项目时都会用到svn来同步,因为开发产品的人过多,所以我们会利用软件来管理,今天发有一居然可以利用php来管理svn哦,好了看看吧。 代码如下 ...2016-11-25
  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#实现简单的Http请求实例

    这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
  • Java如何发起http请求的实现(GET/POST)

    这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • C#使用Http Post方式传递Json数据字符串调用Web Service

    这篇文章主要为大家详细介绍了C#使用Http Post方式传递Json数据字符串调用Web Service,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 解决Feign切换client到okhttp无法生效的坑(出现原因说明)

    这篇文章主要介绍了解决Feign切换client到okhttp无法生效的坑(出现原因说明),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-25
  • 完美解决SpringCloud-OpenFeign使用okhttp替换不生效问题

    这篇文章主要介绍了完美解决SpringCloud-OpenFeign使用okhttp替换不生效问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-25
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • 解决Java处理HTTP请求超时的问题

    这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • PHP实现递归无限级分类

    在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把...2015-10-23
  • C#类中static变量用法分析

    这篇文章主要介绍了C#类中static变量用法,实例分析了static变量使用技巧与相关注意事项,需要的朋友可以参考下...2020-06-25
  • mybatis-plus实体类主键策略有3种(小结)

    这篇文章主要介绍了mybatis-plus实体类主键策略有3种(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-27
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • PHP 一个完整的分页类(附源码)

    在php中要实现分页比起asp中要简单很多了,我们核心就是直接获取当前页面然后判断每页多少再到数据库中利用limit就可以实现分页查询了,下面我来详细介绍分页类实现程序...2016-11-25
  • HTTP 415错误-Unsupported media type详解

    这篇文章主要介绍了HTTP 415错误-Unsupported media type详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-16