PHP丨实现可判断类型限制大小的原生文件上传,图片上传等

记一个专门针对图片做的封装类,主要针对图片上传

代码如下:

<?php
public function uploads($file){
//判断文件类型和大小
if ((($_FILES[$file]["type"] == "image/gif") || ($_FILES[$file]["type"] == "image/jpeg") ||
($_FILES[$file]["type"] == "image/pjpeg") || ($_FILES[$file]["type"] == "image/png")) &&
($_FILES[$file]["size"] < 2072575)){ //获取文件类型 $filetype = $_FILES[$file]['type']; $preg="/image\/(.*)/"; preg_match_all($preg,$filetype,$filearr); //重命名文件 $filename = "static/uploads/".date('Ymdhis').rand(100,999).'.'.$filearr[1][0]; //上传并重命名 $fileuploads = move_uploaded_file($_FILES[$file]["tmp_name"],$filename); if ($fileuploads) { $data = ['msg'=>200,'val'=>'上传成功','img'=>$filename];
}else{
$data = ['msg'=>404,'val'=>'上传失败'];
}
return json_encode($data);
}
$data = ['msg'=>404,'val'=>'请上传正确的文件格式并且文件不能大于2m'];
return json_encode($data);
}

如有其他需求自食其力。

西顾博客

原文链接:https://24bp.cn/1280.html

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习实践二三事

pip安装报错'not a supported wheel on this platform'

这个错误很常见,解决方法是改名,首先要获得在你的机器的平台上的合法名称: import pip pip.pep425tags.get_supporte...

2527
来自专栏西安-晁州

使用connect-multiparty限制nodejs图片上传

connect-multiparty中间件,可用于获取文件上传时各种参数,比如文件大小、格式等,具体使用: var multipart = require('c...

2160
来自专栏BeJavaGod

权限框架 - shiro 自定义realm

上篇文章中是使用的默认realm来实现的简单登录,这仅仅只是个demo,真正项目中使用肯定是需要连接数据库的 首先创建自定义realm文件,如下: ? 在shi...

3255
来自专栏从零学习云计算

openshift/origin学习记录(11)——赋予用户集群管理员权限

由于system:admin默认没有密码,没法登录web console,这里通过指令给账号dev赋予集群管理员权限。 # oc login -u sys...

3030
来自专栏Golang语言社区

Golang语言--反射的用处--代码自动生成

背景: go语言处理db、json的时候,具体代码的变量定义和db字段、json输出的时候可能不一样。 这个时候,我们需要用tag的方式来进行定义。 例如: ?...

4006
来自专栏不想当开发的产品不是好测试

linux free命令下 cached占用很大

# 背景 使用free -h命令,展示如下: ? # 解决方法 先执行sync命令,同步数据 然后执行 echo 1 > /proc/sys/vm/drop_c...

3745
来自专栏电光石火

CentOS 安装 Maven

 1、官网找到最新版的安装包: http://maven.apache.org/download.cgi 拷贝文件名为 *-bin.tar.gz 的链接地址 ...

2256
来自专栏Java技术分享

SpringBoot第5小节:事务管理

场景:执行2条sql语句,要么同时成功,要么同时失败。 同时操作1条或多条数据时,建议给方法加个@Transactional,查询的时候不用加事务。 ?

3396
来自专栏王小雷

React Natvie在Mac os上安装并创建项目

详细记录React-Native 0.47版本在Mac OS 上安装过程并初始化项目。 ? 1. 安装RN环境 1.1 安装brew /usr/bin/ruby...

2146
来自专栏菩提树下的杨过

"org.jboss.netty.internal.LoggerConfigurator".DESCRIBED is already registered 的解决办法

今天在jboss 6.2 EAP上部署一个项目时,报以下错误: org.jboss.msc.service.DuplicateServiceException:...

22210

扫码关注云+社区