谁可相欹 发表于 2015-2-3 23:30:40

PHP网页设计PHP十分适用的上传类,上传后果在线演示...

你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧。   
  #*********************************************************
  #文件称号:
  inc_class.upload.php
  #Copyright (c)
  2007-2009 芳华一度 all rights reserved.
  #最初更新: 2009-08-05
  #版本 : v 2.0.a
  #注:转发时请保存此声明信息,这段声明不并会影响你的速度!
  #若有修正请将修正后的文件以邮件模式发送给作者一份,感谢!
  #
  #*********************************************************
  if(!defined('IN_PHPADLEYIU'))
  {
  exit('Access Denied');
  }
  /*
  //利用申明:
  //声明一个上传类
  include_once(ADLEYLIU_ROOT.'./inc_class.upload.php');
  $_YL_UPLOAD
  = array();
  $yl_uploadfile = new
  yl_upload_class();
  $_YL_UPLOAD['yl_filedata'] =
  'uploadFile';//表单名
  $_YL_UPLOAD['yl_directroy'] =
  'upload_files';//上传主目次
  $_YL_UPLOAD['file_urldirectroy'] = '/';//
  法式途径
  $_YL_UPLOAD['yl_settingsnew'] =
  ''.date('ym').'/'.date('d').'/'.substr(time(), 0,
  5).'';//上传子主目次
  $_YL_UPLOAD['yl_maxsize'] = 1048576;
  //这里以字节为单元(1024*2)*1024=2097152 就是 2M
  $_YL_UPLOAD['yl_sizeformat'] =
  'k'; //显示文件巨细单元b字节,k千,m兆
  $_YL_UPLOAD['yl_arrext'] =
  array('gif','jpg','jpeg','png','bmp','rar','txt');//答应上传文件类型
  $_YL_UPLOAD['yl_ext'] = 0; //0原文件类型上传,1一致为存为jpg
  $_YL_UPLOAD['yl_prefix'] = ''.$uid.''.$yl_uploadfile -> yl_createrand(1,0).''.$cid.'';
  //在文件名前缀加上特别字符 //$uid 会员ID $cid 分类ID
  $_YL_UPLOAD['yl_suffix'] = ''; //''.$yl_uploadfile -> yl_createrand(3,0).'';
  //在文件名后缀加上特别字符
  $_YL_UPLOAD['thumbwidth'] = 100;
  //缩略图宽
  $_YL_UPLOAD['thumbheight'] = 100;
  //缩略图高
  $_YL_UPLOAD['maxthumbwidth'] = 500;
  //大图高
  $_YL_UPLOAD['maxthumbheight'] = 500;
  //大图宽
  //上传
  $yl_uploadfile -> yl_uploadfile();
  获得值:
  'yl_filename' => addslashes($_YL_UPLOAD['yl_filename']),原文件名
  'yl_attachment' => $_YL_UPLOAD['yl_attachment'],新文件名及途径
  'yl_filesize' => $_YL_UPLOAD['yl_filesize'] ,文件巨细
  'yl_filetype' => $_YL_UPLOAD['yl_filetype'],文件类型
  'yl_isimage' => $_YL_UPLOAD['yl_isimage'],是不是是图片
  'yl_isthumb' => $_YL_UPLOAD['yl_isthumb'],是不是有小图片
  */
  class yl_upload_class
  {
  function __GET($property_name)
  {
  if(isset($this -> $property_name))
  {
  return $this -> $property_name;
  } else
  {
  return
  NULL;
  }
  }
  function __SET($property_name,
  $value) {
  $this -> $property_name =
  $value;
  }
  #*********************************************************
  #生成缩略图
  #*********************************************************
  function makethumb($srcfile) {
  global $_YL_UPLOAD;
  //判别文件是不是存在
  if (!file_exists($srcfile))
  {
  return '';
  }
  $dstfile =
  $srcfile.'.small.jpg';
  $bigfile =
  $srcfile.'.big.jpg';
  //缩略图巨细
  $tow =
  intval($_YL_UPLOAD['thumbwidth']);
  $toh =
  intval($_YL_UPLOAD['thumbheight']);
  if($tow < 60) $tow =
  60;
  if($toh < 60) $toh = 60;
  $make_max = 0;
  $maxtow =
  intval($_YL_UPLOAD['maxthumbwidth']);
  $maxtoh =
  intval($_YL_UPLOAD['maxthumbheight']);
  if($maxtow >= 300
  && $maxtoh >= 300) {
  $make_max =
  1;
  }
  //获得图片信息
  $im = '';
  if($data =
  getimagesize($srcfile)) {
  if($data == 1)
  {
  $make_max =
  0;//gif不处置
  if(function_exists("imagecreatefromgif"))
  {
  $im =
  imagecreatefromgif($srcfile);
  }
  }
  elseif($data == 2)
  {
  if(function_exists("imagecreatefromjpeg"))
  {
  $im =
  imagecreatefromjpeg($srcfile);
  }
  }
  elseif($data == 3)
  {
  if(function_exists("imagecreatefrompng"))
  {
  $im =
  imagecreatefrompng($srcfile);
  }
  }
  }
  if(!$im)
  return '';
  $srcw = imagesx($im);
  $srch = imagesy($im);
  $towh = $tow/$toh;
  $srcwh =
  $srcw/$srch;
  if($towh <= $srcwh){
  $ftow =
  $tow;
  $ftoh = $ftow*($srch/$srcw);
  $fmaxtow = $maxtow;
  $fmaxtoh =
  $fmaxtow*($srch/$srcw);
  } else {
  $ftoh =
  $toh;
  $ftow = $ftoh*($srcw/$srch);
  $fmaxtoh = $maxtoh;
  $fmaxtow =
  $fmaxtoh*($srcw/$srch);
  }
  if($srcw <= $maxtow
  && $srch <= $maxtoh) {
  $make_max =
  0;//不处置
  }
  if($srcw > $tow $srch > $toh)
  {
  if(function_exists("imagecreatetruecolor") &&
  function_exists("imagecopyresampled") && @$ni =
  imagecreatetruecolor($ftow, $ftoh))
  {
  imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftow,
  $ftoh, $srcw,
  $srch);
  //大图片
  if($make_max
  && @$maxni = imagecreatetruecolor($fmaxtow, $fmaxtoh))
  {
  imagecopyresampled($maxni, $im, 0, 0, 0, 0,
  $fmaxtow, $fmaxtoh, $srcw, $srch);
  }else if (@$maxni
  = imagecreatetruecolor(round($srcw/2),
  round($srch/2))){
  imagecopyresampled($maxni,
  $im, 0, 0, 0, 0, round($srcw/2), round($srch/2), $srcw,
  $srch);
  }
  }
  elseif(function_exists("imagecreate") &&
  function_exists("imagecopyresized") && @$ni = imagecreate($ftow, $ftoh))
  {
  imagecopyresized($ni, $im, 0, 0, 0, 0, $ftow,
  $ftoh, $srcw,
  $srch);
  //大图片
  if($make_max
  && @$maxni = imagecreate($fmaxtow, $fmaxtoh))
  {
  imagecopyresized($maxni, $im, 0, 0, 0, 0,
  $fmaxtow, $fmaxtoh, $srcw, $srch);
  }else if (@$maxni
  = imagecreate(round($srcw/2),
  round($srch/2))){
  imagecopyresized($maxni, $im,
  0, 0, 0, 0, round($srcw/2), round($srch/2), $srcw,
  $srch);
  }
  } else
  {
  return
  '';
  }
  if(function_exists('imagejpeg'))
  {
  imagejpeg($ni,
  $dstfile);
  //大图片
  if($make_max)
  {
  imagejpeg($maxni,
  $bigfile);
  }else{
  imagejpeg($maxni,
  $bigfile);
  }
  }
  elseif(function_exists('imagepng')) {
  imagepng($ni,
  $dstfile);
  //大图片
  if($make_max)
  {
  imagepng($maxni,
  $bigfile);
  }else{
  imagejpeg($maxni,
  $bigfile);
  }
  }
  imagedestroy($ni);
  if($make_max)
  {
  }else{
  imagedestroy($maxni);
  }
  }else{
  if(function_exists("imagecreatetruecolor") &&
  function_exists("imagecopyresampled") && @$ni =
  imagecreatetruecolor($srcw, $srch))
  {
  imagecopyresampled($ni, $im, 0, 0, 0, 0, $srcw,
  $ftoh, $srch,
  $srch);
  //大图片
  $maxni =
  imagecreatetruecolor($srch, $srch);
  imagecopyresampled($maxni, $im, 0, 0, 0, 0, $srcw, $srch, $srcw,
  $srch);
  } elseif(function_exists("imagecreate")
  && function_exists("imagecopyresized") && @$ni =
  imagecreate($ftow, $ftoh)) {
  imagecopyresized($ni,
  $im, 0, 0, 0, 0, $srcw, $srch, $srcw,
  $srch);
  //大图片
  $maxni =
  imagecreate($fmaxtow, $fmaxtoh);
  imagecopyresized($maxni, $im, 0, 0, 0, 0, $srcw, $srch, $srcw,
  $srch);
  } else
  {
  return
  '';
  }
  imagejpeg($ni, $dstfile);
  imagejpeg($maxni,
  $bigfile);
  }
  imagedestroy($im);
  if(!file_exists($dstfile)) {
  return
  '';
  } else {
  return
  $dstfile;
  }
  }
  #*********************************************************
  #获得随机数函数
  #*********************************************************
  function
  yl_createrand($length, $numeric = 0) {
  PHP_VERSION < '4.2.0'
  && mt_srand((double)microtime() * 1000000);
  if($numeric)
  {
  $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10,
  $length) - 1));
  } else {
  $hash =
  '';
  $chars =
  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';///0123456789
  $max
  = strlen($chars) - 1;
  for($i = 0; $i < $length; $i++)
  {
  $hash .= $chars[mt_rand(0,
  $max)];
  }
  }
  return
  $hash;
  }
  #***************
  #*********************************************************
  #创立目次函数
  #*********************************************************
  function
  createfolder($yl_path)
  {
  if
  (!file_exists($yl_path))
  {
  $this ->
  createfolder(dirname($yl_path));
  @mkdir($yl_path,
  0777);
  }
  return $this ->
  createfolder;
  }
  #*********************************************************
  #获得文件
  称号,巨细,类型,一时文件名
  #*********************************************************
  function
  yl_getfilename($yl_type)
  {
  global
  $_YL_UPLOAD;
  return
  $_FILES[$_YL_UPLOAD['yl_filedata']][$yl_type];
  }
  #*********************************************************
  #获得文件巨细
  #*********************************************************
  function
  yl_getfilesize()
  {
  global
  $_YL_UPLOAD;
  $yl_filesize = $this ->
  yl_getfilename('size');
  if($yl_filesize ==
  0){
  $this ->
  alert("请选择上传文件!");
  exit;
  }
  if($yl_filesize
  > $_YL_UPLOAD['yl_maxsize']){
  switch
  (strtolower($_YL_UPLOAD['yl_sizeformat'])){
  case
  'b':
  $yl_maxsizek = $_YL_UPLOAD['yl_maxsize'] .
  ' B';
  break;
  case
  'k':
  $yl_maxsizek =
  $_YL_UPLOAD['yl_maxsize']/1024 . '
  K';
  break;
  case
  'm':
  $yl_maxsizek =
  $_YL_UPLOAD['yl_maxsize']/(1024*1024) . '
  M';
  }
  $this ->
  alert("上传文件超越限制局限[".$yl_maxsizek."].K!");
  exit;
  }
  return
  $yl_filesize;
  }
  #*********************************************************
  #取得文件扩大名
  #*********************************************************
  function
  yl_getfiletype()
  {
  global
  $_YL_UPLOAD;
  $pathinfo = pathinfo($this -> yl_getfilename('name'));
  $yl_file_ext =
  strtolower($pathinfo['extension']);
  //反省扩大名
  if(!array_keys($_YL_UPLOAD['yl_arrext'],$yl_file_ext))
  {
  $this ->
  alert("上传文件类型被限制!");
  exit;
  }
  return
  $yl_file_ext;
  }
  #*********************************************************
  #上传验证
  #*********************************************************
  function
  yl_upfile($source, $target) {
  //
  假如一种函数上传掉败,还可以用其他函数上传
  if (function_exists('move_uploaded_file')
  && @move_uploaded_file($source, $target))
  {
  @chmod($target, 0666);
  return
  $target;
  } elseif (@copy($source, $target))
  {
  @chmod($target, 0666);
  return
  $target;
  } elseif (@is_readable($source))
  {
  if ($fp = @fopen($source,'rb'))
  {
  @flock($fp,2);
  $filedata
  =
  @fread($fp,@filesize($source));
  @fclose($fp);
  }
  if
  ($fp = @fopen($target, 'wb')) {
  @flock($fp,
  2);
  @fwrite($fp,
  $filedata);
  @fclose($fp);
  @chmod
  ($target, 0666);
  return
  $target;
  } else {
  return
  false;
  }
  }
  }
  #*********************************************************
  #上传
  #*********************************************************
  function
  yl_uploadfile()
  {
  global $_YL_UPLOAD;
  $yl_file_path = $_YL_UPLOAD['yl_directroy'].'/'.$_YL_UPLOAD['yl_settingsnew'] ;//创立一个目次
  $yl_filename = $this -> yl_getfilename('name');//原文件名
  $yl_filenamenews = $_YL_UPLOAD['yl_prefix'].''.substr(time(), 5, 9).''.$_YL_UPLOAD['yl_suffix'].'';//重定名
  $yl_file_size = $this -> yl_getfilesize();//获得文件巨细
  $yl_file_type = $this -> yl_getfiletype();//获得文件类型
  if($_YL_UPLOAD['yl_ext'] ==
  0){
  $yl_filenamenewsext = $yl_filenamenews.'.'.$yl_file_type;//更名
  }elseif ($_YL_UPLOAD['yl_ext'] == 1){
  $yl_filenamenewsext = $yl_filenamenews.'.jpg';//一致更名为jpg
  }
  //$yl_tmp_name = str_replace(' ','',$this ->
  yl_getfilename('tmp_name'));//办事器上一时文件名
  $yl_tmp_name = $this -> yl_getfilename('tmp_name');//办事器上一时文件名
  //反省是不是已上传
  if(
  href="!@is_uploaded_file($yl_tmp_name" _cke_saved_href="!@is_uploaded_file($yl_tmp_name">mailto:!@is_uploaded_file($yl_tmp_name">!@is_uploaded_file($yl_tmp_name))
  {
  $this ->
  alert("文件已上传!");
  exit;
  }
  //反省目次是不是存在,不存在则创立
  if(
  href="!@is_dir(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''" _cke_saved_href="!@is_dir(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''">mailto:!@is_dir(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''">!@is_dir(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''))
  {
  $this ->
  createfolder(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.'');//创立目次
  }
  //反省目次写权限
  if
  (
  href="!@is_writable(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''" _cke_saved_href="!@is_writable(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''">mailto:!@is_writable(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''">!@is_writable(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.''))
  {
  $this ->
  alert("上传目次没有写权限!");
  exit;
  }
  $yl_path_name
  =
  ''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.'/'.$yl_filenamenewsext.'';
  $yl_doupload = $this -> yl_upfile($yl_tmp_name, $yl_path_name);
  if($yl_doUpload === false){
  $this -> alert("上传掉败!");
  exit;
  }else{
  //echo
  '上传胜利';
  //echo
  '
';
  /*
  echo
  '原文件名:'.$yl_filename.'';
  echo
  '
';
  echo
  '新文件名及目次:'.$yl_file_path.'/'.$yl_filenamenewsext;
  echo
  '
';
  echo
  '文件巨细:'.$yl_file_size.'';
  echo '
';
  echo '文件类型:'.$yl_file_type.'';
  */
  $_YL_UPLOAD['yl_filename'] = $yl_filename;
  $_YL_UPLOAD['yl_attachment'] = ''.$yl_file_path.'/'.$yl_filenamenewsext.'';
  $_YL_UPLOAD['yl_filesize'] = $yl_file_size;
  $_YL_UPLOAD['yl_filetype'] = $yl_file_type;
  //反省是不是图片
  if(@getimagesize($yl_path_name))
  {
  $_YL_UPLOAD['yl_isimage'] =
  1;
  ///生成缩略图
  if ($this -> makethumb($yl_path_name)){
  $_YL_UPLOAD['yl_isthumb'] = 1;
  }else{
  $_YL_UPLOAD['yl_isthumb'] = 0;
  }
  }else{
  $_YL_UPLOAD['yl_isimage'] = 0;
  }
  }
  return
  true;
  }
  #*********************************************************
  #提醒
  #*********************************************************
  function
  alert($yl_msg)
  {
  echo '';
  echo '';
  echo '';
  echo '';
  echo '';
  echo '';
  echo ' <script></script>';
  echo '';
  echo '';
  exit;
  }
  }
基础这个东西,有人问学php需要任何基础不?

透明 发表于 2015-2-4 00:07:40

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

柔情似水 发表于 2015-2-5 11:07:27

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

再现理想 发表于 2015-2-10 04:21:33

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

山那边是海 发表于 2015-2-22 08:55:08

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

谁可相欹 发表于 2015-3-9 14:54:24

兴趣是最好的老师,百度是最好的词典。

再见西城 发表于 2015-3-16 23:53:11

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

乐观 发表于 2015-3-17 02:11:37

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

简单生活 发表于 2015-3-17 07:09:32

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

灵魂腐蚀 发表于 2015-3-22 23:11:24

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

蒙在股里 发表于 2015-3-25 09:32:40

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

因胸联盟 发表于 2015-3-27 12:09:45

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

飘灵儿 发表于 2015-4-7 19:53:20

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

第二个灵魂 发表于 2015-4-10 10:42:38

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

小魔女 发表于 2015-4-28 02:04:35

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

愤怒的大鸟 发表于 2015-4-28 12:26:44

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

冷月葬花魂 发表于 2015-5-1 04:11:35

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

仓酷云 发表于 2015-5-3 20:57:22

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

兰色精灵 发表于 2015-5-8 17:39:57

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
页: [1]
查看完整版本: PHP网页设计PHP十分适用的上传类,上传后果在线演示...