php封装单文件上传到数据库(路径)
发布:smiling 来源: PHP粉丝网 添加日期:2018-09-13 16:03:56 浏览: 评论:0
1.首先思考一个问题上传到数据库是上传的图片还是图片地址这里我们上传的是图片地址,因为图片或音频存数据库中过大,数据库会崩掉。
下面是封装的文件上传的方法:
- <?php
- /*
- *@prame string key
- *@prame string path
- *@prame String maxSize
- *@prame array allowMime
- *@prame array allowFiletype
- *@prame bool true
- *
- *auther wulei
- */
- function upload($key,$path,$maxSize,$allowMime,$allowType,$ifFileName = true){
- //第一步 判断错误码
- if($_FILES[$key]['error']){
- switch($_FILES[$key]['error']){
- case 1:
- $str = "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。";
- break;
- case 2:
- $str = "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。";
- break;
- case 3:
- $str = "文件只有部分被上传。";
- break;
- case 4:
- $str = "没有文件被上传。";
- break;
- case 6:
- $str = "找不到临时文件夹。";
- break;
- case 7:
- $str = "文件写入失败";
- break;
- }
- return [0,$str];
- }
- //判断文件大小
- if($_FILES[$key]['size']>$maxSize){
- return [0,'传的文件超过最大限制'];
- }
- //判断文件的mime类型
- if(!in_array($_FILES[$key]['type'],$allowMime)){
- return [0,'不符合的mime类型'];
- }
- //判断文件的后缀
- $info = pathinfo($_FILES[$key]['name']);
- $sub = $info['extension'];
- if(!in_array($sub,$allowType)){
- return [0,'不符合的文件后缀'];
- }
- //判断是否是随机文件
- if($ifFileName){
- $name = uniqid().'.'.$sub;
- }else{
- $name = $info;
- }
- //拼接路径
- $path = rtrim($path,'/').'/'.date('Y/m/d').'/';
- //判断文件是否存在,不存在则创建
- if(!file_exists($path)){
- mkdir($path,0777,true);
- }
- //判断是否是上传文件
- if(is_uploaded_file($_FILES[$key]['tmp_name'])){
- if(move_uploaded_file($_FILES[$key]['tmp_name'],$path.$name)){
- echo '文件上传成功';
- return [1,$path.$name];
- }else{
- return[0,'上传文件失败'];
- } //phpfensi.com
- }else{
- return [0,'文件不存在'];
- }
- }
2.html 页面
- <html>
- <head>
- <title>文件上传</title>
- <meta charset = "utf-8"/>
- </head>
- <body>
- <form action = "onUpload.php" method = "post" enctype ="multipart/form-data">
- <!--<input type = "text" name = "username"/><br/>-->
- <input type = "file" name = "file"/><br/>
- <input type = "submit" value ="提交"/>
- </form>
- </body>
3、下面我们链接数据库
这里我们直接使用了,看不懂的可以去看前面的封装的数据库方法那一篇文章.
- <?php
- //包含方法
- include 'uploed.php';
- include 'common.php';
- //得到方法
- $data = upload('file','image',pow(1024,2)*2,[
- 'image/png','image/jpeg','image/gif','image/wbmp'
- ],['png','jpg','jpeg','jpe','pjpeg','gif','wbmp','bmp']);
- //这里进行数据库操作
- if($data[0]){
- $date['img_path'] = $data[1];
- }
- insert($link,'user',$date);
Tags: 路径 数据库 文件
- 上一篇:php上传文件分类实例代码
- 下一篇:php获得上传文件类型的几种方法
相关文章
- ·PHP上传文件时如何自动分配的路径(2015-04-09)
- ·PHP上传文件时自动分配路径的方法(2021-05-08)
- ·PHP获取文件相对路径的方法(2021-05-14)
- ·PHP实现上传文件并存进数据库的方法(2021-06-12)
- ·php实现文件上传的程序代码(2013-11-13)
- ·php 实现多文件上传程序代码(2013-11-13)
- ·php utf8编码上传中文文件名出现乱码(2013-11-14)
- ·php中实现图片文件上传程序代码(2013-11-14)
- ·php中检测上传文件类型与上传图片大小代码(2013-11-14)
- ·CKEditor+CKFinder+php上传文件配置方法(2013-12-02)
- ·PHP多文件上传(2013-12-09)
- ·php 文件上传实例代码(2013-12-16)
- ·php文件上传程序(2013-12-16)
- ·php文件上传代码(支持文件批量上传)(2013-12-19)
- ·php iframe 无刷新文件上传代码(2013-12-23)
- ·php下实现文件下载实现代码(2014-01-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)