-
php封装单文件上传到数据库(路径)
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);
出处:http://www.phpfensi.com/php/20180913/11126.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式