找回密码
 注册

QQ登录

只需一步,快速开始

查看: 208|回复: 1

简易php 文件(限制jpg)上传代码

[复制链接]
发表于 2014-1-6 15:03:16 | 显示全部楼层 |阅读模式
  1. <?php
  2. /* 图片上传类  仅限JPG格式图片 */
  3. class uploadFile
  4. {
  5. var $inputName; //input名称
  6. var $fileName; //文件命名
  7. var $fileProperty; //文件属性
  8. var $fileSize=2097152; //文件大小限制,2M
  9. var $filePath="upload/"; //文件存储路径
  10. function uploadFile($inputName){
  11. $this->inputName=$inputName;
  12. $this->getName(); //取得新的名称
  13. $this->fileSave();
  14. }
  15. //随机名称
  16. private function getName(){
  17. $this->fileName=date("YmdHms").rand(0,9).$this->getProperty();
  18. }
  19. //文件属性,返回后辍名
  20. private function getProperty(){
  21. if($_FILES[$this->inputName]["type"]=="image/pjpeg"||$_FILES[$this->inputName]["type"]=="image/jpeg"){
  22. return ".jpg";
  23. }else{
  24. exit("文件格式不对");
  25. }
  26. }
  27. //文件存储
  28. private function fileSave(){
  29. if($_FILES[$this->inputName]["size"]>$this->fileSize){
  30. exit("文件太大,最大限制为".$this->fileSize."字节");
  31. }
  32. if(!file_exists($this->filePath)){
  33. mkdir($this->filePath); //如果文件存储目录不存在,则建立;
  34. }
  35. move_uploaded_file($_FILES[$this->inputName]["tmp_name"],
  36. $this->filePath.$this->fileName);
  37. }
  38. }
  39. if($_GET['action']=="fileSave"){
  40. $f=new uploadFile("file");
  41. echo '<input name="textfield" type="text" size="30" value="'.$f->filePath.$f->fileName.'" /> 上传成功! <a href="'.$f->filePath.$f->fileName.'">浏览</a>';
  42. }else{
  43. echo '<form action="?action=fileSave" method="post" enctype="multipart/form-data" name="form1" id="form1">
  44. <input type="file" name="file" size="30" />
  45. <input type="submit" name="Submit" value="提交" />
  46. </form>';
  47. }
  48. ?>
复制代码


 楼主| 发表于 2014-1-6 15:11:03 | 显示全部楼层

PHP文件综合编程-文件上传

PHP文件上传
1、upload.php
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title>ddd</title>
  5.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">   
  6.   </head>   
  7.   <body>
  8.         <!--文件上传要注意:1、要有enctyp,2、method="post"-->
  9.     <form enctype="multipart/form-data" action="uploadProcess.php" method="post" >
  10.         <table>
  11.             <tr><td>请填写用户名</td><td><input type="text" name="username"></td></tr>
  12.             <tr><td>请简单介绍文件</td><td><textarea rows="7" cols="50" name="fileintro" style="width:300px;"></textarea></td></tr>
  13.             <tr><td>请上传你的文件</td><td><input type="file" name="myfile"></td></tr>
  14.             <tr><td colspan="2"><input type="submit" value="上传"><td></tr>
  15.         </table>
  16.     </form>
  17.   </body>
  18. </html>
复制代码

2、uploadProcess.php

  1. <?php
  2.     //接收
  3.     $username=$_POST['username'];
  4.     $fileintro=$_POST['fileintro'];

  5.     //echo $username.$fileintro;
  6.     //获取文件信息
  7. /*    echo "<pre>";
  8.     print_r($_FILES);
  9.     echo "</pre>";
  10. */   
  11.     //获取文件的大小
  12.     $file_size=$_FILES['myfile']['size'];
  13.     if($file_size>2*1024*1024){
  14.         echo "<script type='text/javascript'>window.alert('文件不能大于2M')</script>";
  15.         exit();
  16.     }
  17.     //获取文件类型
  18.     $file_type=$_FILES['myfile']['type'];
  19.     if($file_type!="image/jpeg" && $file_type!="image/pjpeg"){
  20.         echo "文件类型只能是 jpg 格式";
  21.         exit();
  22.     }

  23.     //判断上传是否OK
  24.     if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
  25.         //得到上传的文件 转存到你希望的目录
  26.         $upload_file=$_FILES['myfile']['tmp_name'];

  27.         //防止图片覆盖问题,为每个用户建立一个文件夹   
  28.         $user_path=$_SERVER['DOCUMENT_ROOT']."/file/up/".$username;
  29.         if(!file_exists($user_path)){
  30.             mkdir ($user_path);
  31.         }
  32.         //$move_to_file=$user_path."/".$_FILES['myfile']['name'];
  33.         //防止用户上传用户名相同的问题
  34.         $file_true_name=$_FILES['myfile']['name'];
  35.         $move_to_file=$user_path."/".time().rand(1,1000).substr($file_true_name,strripos($file_true_name,"."));
  36.         //echo $upload_file.$move_to_file;
  37.         //中文要转码
  38.         if(move_uploaded_file($upload_file,iconv("utf-8","gb2312","$move_to_file"))){
  39.             echo $_FILES['myfile']['name']."上传成功";
  40.         }else{
  41.             echo "上传失败";
  42.         }
  43.     }else{
  44.         echo "上传失败";
  45.     }
  46. ?>
复制代码

3、封装:
  1. <?php
  2.     class Upload{
  3.         public $upload_name; //上传文件名
  4.         public $upload_tmp_path; //上传文件保存到服务器的temp路径
  5.         public $file_size;
  6.         public $file_type;
  7.         public $file_save_path;
  8.         function __construct(){
  9.             $this->upload_name=$_FILES['myfile']['name'];
  10.             $this->upload_tmp_path=$_FILES['myfile']['tmp_name'];
  11.             $this->file_size=$_FILES['myfile']['size'];
  12.             $this->file_type=$_FILES['myfile']['type'];
  13.             $this->allow_file_type = array('jpeg','jpg','png','gif','bmp','doc','zip','rar','txt','wps','xlsx','ppt');
  14.             $this->file_save_path=$_SERVER['DOCUMENT_ROOT']."/file/up/";
  15.         }
  16.         public function upload_file($username){
  17.             //判断文件大小
  18.             if($this->file_size>2*1024*1024){
  19.                 echo "<script type='text/javascript'>window.alert('文件不能大于2M')</script>";
  20.                 exit();
  21.             }
  22.             //获取文件类型
  23. /*            if($this->file_type!="image/jpeg" && $this->file_type!="image/pjpeg"){
  24.                 echo "文件类型只能是 jpg 格式";
  25.                 exit();
  26.             }
  27. */            //获取文件的扩展名
  28.             $file_type=$this->getFileExt($this->upload_name);
  29.             if(!in_array($file_type,$this->allow_file_type)){
  30.                 echo "上传文件类型格式错误";
  31.                 exit();
  32.             }           
  33.             //判断上传是否OK
  34.             if(is_uploaded_file($this->upload_tmp_path)){

  35.                 //防止图片覆盖问题,为每个用户建立一个文件夹   
  36.                 $user_path=$this->file_save_path.$username;
  37.                 if(!file_exists($user_path)){
  38.                     mkdir ($user_path);
  39.                 }
  40.                 //$move_to_file=$user_path."/".$_FILES['myfile']['name'];
  41.                 //防止用户上传用户名相同的问题
  42.                 //$file_true_name=$_FILES['myfile']['name'];
  43.                 $move_to_file=$user_path."/".time().rand(1,1000).substr($this->upload_name,strripos($this->upload_name,"."));
  44.                 //echo $upload_file.$move_to_file;
  45.                 //中文要转码
  46.                 if(move_uploaded_file($this->upload_tmp_path,iconv("utf-8","gb2312","$move_to_file"))){
  47.                     echo $this->upload_name."上传成功";
  48.                 }else{
  49.                     echo "上传失败";
  50.                 }
  51.             }else{
  52.                 echo "上传失败";
  53.             }
  54.         }

  55.         //获取文件的扩展名
  56.         public function getFileExt($filename){
  57.             $fileExt=pathinfo($filename);
  58.             return $fileExt["extension"];
  59.         }
  60.     }
  61. ?>
复制代码


您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|BC Morning Website ( Best Deal Inc. 001 )

GMT-8, 2026-6-14 12:37 , Processed in 0.022730 second(s), 20 queries .

Supported by Weloment Group X3.5

© 2008-2026 Best Deal Online

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