仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 866|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页编程之php 上传类(自家用)

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:57:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。   <?php
/**
* File up load class
* @version  1.0.0 (Thu Aug 18 01:32:39 CST 2005)
* @author  sanshi
*/
class upLoad
{
/**
*
* @author   sanshi
* @version  1.0.0 Thu Aug 18 01:00:18 CST 2005
* @param  string $info   文件内容
* @param  string $fileName    生成的文件名
* @return   boolean    创立胜利前往true
* @deprecated
* 创立html文件
*/
function createHtml( $info ,$fileName )
{
}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:03:09 CST 2005
* @return  void
* @deprecated
* 机关函数
*/
function downLoad()
{}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:03:55 CST 2005
* @param   string $fileField 在表单中的字段名
* @param   string $length      限制的长度
* @return    boolean      胜利前往true
* @deprecated
* 功效完成函数
*/
function init($fileField,$length='')
{
  $files    = $_FILES[$fileField];
  //用户名需求修改,依据本人的实践情形做修改
  $userName = 'sanshi';
  $fileName = $files['name'];
  $fileType = $files['type'];
  $fileTemp = $files['tmp_name'];
  $fileSize = empty( $length ) ? ($files['size']+10) : $length;
  $fileError= $files['error'];//这块或许php4中没有
  //改成
  //if( $this->_isType( $fileName ) || $this->_isBig( $length ) )
  if( !$this->_isType( $fileName ) || $this->_isBig( $length ) || $fileError != 0  )
  {
   //print_r ($files);
   return false;
  }else{
   $path = $this->_createDir( $userName );//获得途径
   $createFileName = $userName . "_" . time();//设置以后文件名
   $createFileType = $this->getFileType($fileName);//设置文件种别
   return @move_uploaded_file($fileTemp,$path.$createFileName.'.'.$createFileType) ? true : false;
  }
}

/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:07:43 CST 2005
* @param   int  $length  上传限制的巨细
* @return    boolean    超越前往true
* @deprecated
* 判别是不是超越预定巨细
*/
function _isBig($length)
{
  $bigest = '';
  return $big > $bigest ? true : false;
}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:08:55 CST 2005
* @param   string  $fileName 文件名  
* @return    string  $fileType 文件后缀
* @deprecated
* 获得文件后缀(只获得文件的最初一个后缀名)
*/
function getFileType($fileName)
{
  return end(explode('.',$fileName));
}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:10:41 CST 2005
* @param  string $fileName 文件名
* @param  boolean $method  是不是反省多个后缀默许false
* @param int  $postFix 后缀个数默许为2
* @return   boolean    存在前往true
* @deprecated
* 反省文件的后缀是不是在种别数组中,种别数组本人设置
*   假如$method设置为true则反省文件有几个后缀
*/
function _isType($fileName,$method='false',$postFix=2)
{
  //设置种别数组
  $type = array('jpeg',
       'gif',
       'bmp',
       'exe');
  $fileName = strtolower( $fileName );
  $fileTypeArray = explode( '.',$fileName );
  $fileType = end( $fileTypeArray );
  //判别是不是有一个文件有多个后缀
  if($method)
  {
   if( count( $fileTypeArray ) > (is_int($postFix) ? $postFix : 2) )
   {
    return false;
   }
  }
  return in_array($fileType,$type);
}

/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:17:19 CST 2005
* @param   string $userName
* @return    string $path
* @deprecated
* 创立目次 目次格局 年/月/日/用户名/
*   权限为755
*/
function _createDir($userName)
{
  $root = '';
  $pathSign = DIRECTORY_SEPARATOR;
     $y = date('Y').$pathSign;
  $m = date('m').$pathSign;
  $d = date('d').$pathSign;
  $path = $root . $y . $m . $d . $userName;
  $dirArray = explode( $pathSign,$path);
  $tempDir='';
  foreach ( $dirArray as $dir)
  {
   $tempDir.= $dir.$pathSign;
   $isFile = file_exists( $tempDir );
   clearstatcache();
   if( ! $isFile && !is_dir( $tempDir ) )
   {
    @mkdir($tempDir,0755);
   }
  }
  return $path . $pathSign;
}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:19:32 CST 2005
* @param   string  $dirName  目次名
* @return    boolean 可以操作前往true
* @deprecated
* 判别操作是不是在上传目次
*/
function _isDel($dirName)
{
  //注重upLoadDir,必定要与真正利用目次绝对应
  $upLoadDir = '';
  $upLoadDir = preg_replace('/\\//','\/',$upLoadDir);
  $format      = "/^{$upLoadDir}/";
  return preg_match( $format,$dirName );
}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:25:58 CST 2005
* @param  string  $fileName 文件名
* @return   boolean  删除文件胜利前往true
* @deprecated
* 删除文件
*/
function delFile( $fileName )
{
  $cur_dir = dirname(trim($fileName));
  if( $this->_isDel( $cur_dir ) )
  {
   return @unlink( $fileName ) ? true : false;
  }else{
   return false;
  }
}
/**
*
* @author  sanshi
* @version 1.0.0 Thu Aug 18 01:27:43 CST 2005
* @param  string  $dieName 目次名
* @return   boolean  删除胜利前往true
* @deprecated
* 删除目次 目次下假如有文件不克不及删除
*/
function delDir( $dirName )
{
  if( $this->_isDel($dirName) && is_dir( $dirName ) )
  {
   return @rmdir( $dirName ) ? true : false;
  }else{
   return false;
  }
}

}
?>
<?php
//利用
/*
include 'upLoad.class.php';
$up = new upLoad();
if($up->init("file"))
{
echo 'success';
}else{
echo 'failure';
}
*/
?>
没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。
变相怪杰 该用户已被删除
沙发
发表于 2015-2-4 07:44:49 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
透明 该用户已被删除
板凳
发表于 2015-2-5 16:59:44 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
小魔女 该用户已被删除
地板
发表于 2015-2-6 03:10:40 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
再见西城 该用户已被删除
5#
发表于 2015-2-15 07:44:25 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
金色的骷髅 该用户已被删除
6#
发表于 2015-2-16 01:04:03 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
小妖女 该用户已被删除
7#
发表于 2015-3-4 20:39:16 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
海妖 该用户已被删除
8#
发表于 2015-3-9 21:45:32 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
深爱那片海 该用户已被删除
9#
发表于 2015-3-13 02:09:00 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-14 21:57:16 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
兰色精灵 该用户已被删除
11#
发表于 2015-3-16 21:18:48 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
冷月葬花魂 该用户已被删除
12#
 楼主| 发表于 2015-3-23 01:25:43 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
只想知道 该用户已被删除
13#
发表于 2015-4-4 08:56:19 | 只看该作者
做为1门年轻的语言,php一直很努力。
山那边是海 该用户已被删除
14#
发表于 2015-4-4 16:30:35 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
莫相离 该用户已被删除
15#
发表于 2015-4-16 11:11:10 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
柔情似水 该用户已被删除
16#
发表于 2015-4-29 23:50:56 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
再现理想 该用户已被删除
17#
发表于 2015-5-4 15:29:30 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
蒙在股里 该用户已被删除
18#
发表于 2015-5-9 18:00:32 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
19#
发表于 2015-6-5 22:01:55 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
admin 该用户已被删除
20#
发表于 2015-6-13 11:40:52 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 01:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表