返回列表 回复 发帖

[转帖]一个非常棒的上传附件函数

  1. <?
  2. function upload($file,$dir,$name)
  3. {
  4. //本函数只接受gif、jpg、png 格式的文件,不能上传其他格式的文件,如果要上传其他类型的文件请自行更改
  5. //可以限定图片的体积和尺寸,不合要求的不能上传
  6. //本函数能自动识别文件的类型,改为gif、jpg、png 扩展名的“假图片”不能上传
  7. //只要是上述类型图片,本函数能够自动把文件的扩展名改为正确的扩展名
  8. //file 的实参为提交表单中file 类型输入框的名称。例:<input name="upfile" type="file"> 中的 upfile 注意:前面无"$"号
  9. //dir 为上传路径,默认为当前路径
  10. //name 为要改成的目标文件名,当为空字符串表示不改名。
  11. $max_size=512000; //500 KB
  12. $max_w = 800; //最大宽度800像素
  13. $max_h = 600; //最大高度600像素
  14. $min_w = 400; //最小宽度400像素
  15. $min_h = 300; //最小高度300像素
  16. if($dir) //如果路径不是以"/"结尾则加上"/"
  17. {        if(substr($dir,-1)!="/")
  18.         $dir=$dir."/";
  19. }
  20. if($name=="")
  21. $name=$_FILES["$file"][name];
  22. $len=strrpos($name,"."); //取得主文件名长度
  23. if(!$len)
  24. $len=strlen($name);
  25. $name=substr($name,0,$len); //取得主文件名
  26. //添加扩展名
  27. if($_FILES["$file"][type]=="image/gif")
  28. $name=$name.".gif";
  29. if($_FILES["$file"][type]=="image/pjpeg")
  30. $name=$name.".jpg";
  31. if($_FILES["$file"][type]=="image/x-png")
  32. $name=$name.".png";
  33. //检查上传过程中是否出现错误
  34. if($_FILES["$file"][error]) //当发生错误时
  35. {
  36.         if(($_FILES["$file"][error]==1)||($_FILES["$file"][error]==2))
  37.         $info="您上传的文件太大了,超过了允许的范围!";
  38.         if($_FILES["$file"][error] ==3)
  39.         $info="上传过程中发生错误!文件只有部分被上传。";
  40.         if($_FILES["$file"][error] ==4)
  41.         $info="没有文件被上传。</font>";
  42.         if($_FILES["$file"][error] ==5)
  43.         $info="上传文件大小为零。";
  44. }
  45. else //当上传成功时
  46. {
  47.         if(($_FILES["$file"][type]=="image/gif")||($_FILES["$file"][type]=="image/pjpeg")||($_FILES["$file"][type]=="image/x-png")) //是合法的文件类型时
  48.         {
  49.                 if($_FILES["$file"][size]<=$max_size) //检查文件大小
  50.                 {
  51.                         $size=GetImageSize($_FILES["$file"][tmp_name]);
  52.                          if(($size[0]<=$max_w)&&($size[0]>=$min_w)&&($size[1]<=$max_h)&&($size[1]>=$min_h)) //检查图片的长宽
  53.                         {
  54.                                 //复制文件到指定位置。
  55.                                 copy($_FILES["$file"][tmp_name],$dir.$name); //复制文件,并改名
  56.                                 if(file_exists($dir.$name))    //检查是否上传成功
  57.                                 $info=$dir.$name."上传成功!";
  58.                                 else
  59.                                 $info="复制文件过程中出现错误!上传失败!";
  60.                         }
  61.                         else //图片尺寸不合适时
  62.                         {
  63.                                 $info="图片尺寸不合适宽度".$min_w."-".$max_w."像素,高度".$min_h."-".$max_h."像素。";
  64.                         }        
  65.                 }
  66.                 else //文件超出限制时
  67.                 {
  68.                         $info="文件大小超过了限制,最大为".($max_size/1024)." KB";
  69.                 }
  70.         }
  71.         else //文件类型非法时
  72.         {
  73.         $info="文件类型非法!限制为gif、jpg、png图片";
  74.         }
  75. }
  76. return "$info";
  77. }
  78. ?>
复制代码

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表