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

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

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

/*

*@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,'上传文件失败'];

}

}else{

return [0,'文件不存在'];

}

}

2.html 页面

文件上传

3、下面我们链接数据库

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

//包含方法

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);

总结

以上所述是小编给大家介绍的php封装单文件上传到数据库(路径),希望对大家有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值