当前位置:首页 > PHP教程 > php上传下载 > 列表

php封装单文件上传到数据库(路径)

发布:smiling 来源: PHP粉丝网  添加日期:2018-09-13 16:03:56 浏览: 评论:0 

1.首先思考一个问题上传到数据库是上传的图片还是图片地址这里我们上传的是图片地址,因为图片或音频存数据库中过大,数据库会崩掉。

下面是封装的文件上传的方法:

  1. <?php 
  2. /* 
  3. *@prame string key 
  4. *@prame string path 
  5. *@prame String maxSize 
  6. *@prame array allowMime 
  7. *@prame array allowFiletype 
  8. *@prame bool true 
  9. * 
  10. *auther wulei 
  11. */ 
  12. function upload($key,$path,$maxSize,$allowMime,$allowType,$ifFileName = true){ 
  13.   //第一步 判断错误码 
  14.   if($_FILES[$key]['error']){ 
  15.     switch($_FILES[$key]['error']){ 
  16.       case 1: 
  17.         $str = "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。"
  18.         break
  19.       case 2: 
  20.         $str = "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。"
  21.         break
  22.       case 3: 
  23.         $str = "文件只有部分被上传。"
  24.         break
  25.       case 4: 
  26.         $str = "没有文件被上传。"
  27.         break
  28.       case 6: 
  29.         $str = "找不到临时文件夹。"
  30.         break
  31.       case 7: 
  32.         $str = "文件写入失败"
  33.         break
  34.     } 
  35.     return [0,$str]; 
  36.   } 
  37.   //判断文件大小 
  38.   if($_FILES[$key]['size']>$maxSize){ 
  39.     return [0,'传的文件超过最大限制']; 
  40.   } 
  41.   //判断文件的mime类型 
  42.   if(!in_array($_FILES[$key]['type'],$allowMime)){ 
  43.     return [0,'不符合的mime类型']; 
  44.   } 
  45.   //判断文件的后缀 
  46.   $info = pathinfo($_FILES[$key]['name']); 
  47.   $sub = $info['extension']; 
  48.   if(!in_array($sub,$allowType)){ 
  49.     return [0,'不符合的文件后缀']; 
  50.   } 
  51.   //判断是否是随机文件 
  52.   if($ifFileName){ 
  53.     $name = uniqid().'.'.$sub
  54.   }else
  55.     $name = $info
  56.   } 
  57.   //拼接路径 
  58.   $path = rtrim($path,'/').'/'.date('Y/m/d').'/'
  59.   //判断文件是否存在,不存在则创建 
  60.   if(!file_exists($path)){ 
  61.     mkdir($path,0777,true); 
  62.   } 
  63.   //判断是否是上传文件 
  64.   if(is_uploaded_file($_FILES[$key]['tmp_name'])){ 
  65.     if(move_uploaded_file($_FILES[$key]['tmp_name'],$path.$name)){ 
  66.       echo '文件上传成功'
  67.       return [1,$path.$name]; 
  68.     }else
  69.       return[0,'上传文件失败']; 
  70.     } //phpfensi.com 
  71.   }else
  72.     return [0,'文件不存在']; 
  73.   } 
  74.   } 

2.html 页面

  1. <html> 
  2. <head> 
  3.   <title>文件上传</title> 
  4.   <meta charset = "utf-8"/> 
  5. </head> 
  6. <body> 
  7.   <form action = "onUpload.php" method = "post" enctype ="multipart/form-data"
  8.     <!--<input type = "text" name = "username"/><br/>--> 
  9.     <input type = "file" name = "file"/><br/> 
  10.     <input type = "submit" value ="提交"/> 
  11.   </form> 
  12. </body> 

3、下面我们链接数据库

这里我们直接使用了,看不懂的可以去看前面的封装的数据库方法那一篇文章.

  1. <?php 
  2.   //包含方法 
  3.   include 'uploed.php'
  4.   include 'common.php'
  5.   //得到方法 
  6.   $data = upload('file','image',pow(1024,2)*2,[ 
  7.         'image/png','image/jpeg','image/gif','image/wbmp' 
  8.       ],['png','jpg','jpeg','jpe','pjpeg','gif','wbmp','bmp']); 
  9.   //这里进行数据库操作 
  10.   if($data[0]){ 
  11.     $date['img_path'] = $data[1]; 
  12.   } 
  13.   insert($link,'user',$date); 

Tags: 路径 数据库 文件

分享到: