php怎么上传函数,php上传函数怎么封装

20191114_5dccd081a8ed9.jpg

php上传函数怎么封装?

<?php //上传文件调用 $file = $_FILES['image']; //允许上传的类型 $allow = array('image/jpeg', 'image/png', 'image/jpg', 'image/gif'); $path = './uploads'; $maxsize = 1024 * 1024 * 3; $result = upload($file, $allow, $error, $path, $maxsize); if ($result) { //上传成功 echo "文件上传成功,新的文件名叫".$result; }else{ //上传失败 echo $error; } /** *文件的上传 *@param array $file 上传的文件的相关信息(是一个数组有五个元素) *@param array $allow 允许文件上传的类型 *@param string & $error 引用传递,用来记录错误的信息 *@param string $path 文件上传的目录,不带最后的 / *@param int $maxsize = 1024*1024 允许上传的文件大小 *@return mixed false | $newname 如果上传失败返回false,成功返回文件的新名字 **/ function upload($file, $allow, &$error, $path, $maxsize =1048576){ //先判断系统错误 switch ($file['error']) { case 1: $error = '上传错误,超出了服务器文件限制的大小!'; return false; case 2: $error = '上传错误,超出了浏览器表单允许的大小!'; return false; case 3: $error = '上传错误,文件上传不完整!'; return false; case 4: $error = '上传错误,请您先选择要上传的文件!'; return false; case 6: case 7: $error = '对不起,服务器繁忙,请稍后再试!'; return false; } //判断逻辑错误 //验证文件的大小 if ($file['size'] > $maxsize) { //超出用户了自己规定的大小 $error = '上传错误,超出了文件限制的大小!'; return false; } //判断文件的类型 if (!in_array($file['type'], $allow)) { //非法的文件类型 $error = '上传的文件的类型不正确,允许的类型有:'.implode(',', $allow); return false; } //移动临时文件 //指定文件上传后保存的路径 $newname = randName($file['name']); //得到文件新的名字 //判断$path 目录是否存在 不存在则创建 if (!file_exists($path)) { mkdir($path, 0777, true); } $target = $path . '/' . $newname; $result = move_uploaded_file($file['tmp_name'], $target); if ($result) { //上传成功 return $newname; }else{ //上传失败 $error = '发生未知错误,上传失败'; return false; } } /** *生成一个随机名字的函数 文件名=当前的时间 + 随机的几位数字 *@param string $filename 文件的原始名字 *@return string $newname 文件的新名字 * */ function randName($filename){ //生成文件名的时间部分 $newname = date('YmdHis'); //加上随机的6位数 $str = '0123456789'; for ($i=0; $i < 6; $i++) { $newname .= $str[mt_rand(0, strlen($str)-1)]; } //加上文件的后缀名 $newname .= strrchr($filename, '.'); return $newname; }

HTML上传代码

文件上传

推荐:《PHP教程》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

THU: 成绩录入系统的bug

各位老师&#xff0c;您好&#xff01; 本学期课程网上录入成绩的时间马上就要截止&#xff0c;请注意&#xff01; 1、 录入成绩系统开通时间&#xff1a;2010年1月8日&#xff08;周五&#xff09;8&#xff1a;30 &#xff5e; 1月27日&#xff08;周三&#xff09;16&…

php-frm进程管理,PHP内核探索-进程管理

进程管理方式首先我们了解一下php的三种不同的进程管理方式&#xff1a;static&#xff1a;静态管理进程。在启动时&#xff0c;master按照pm.max_children配置fork出对应数量的work进程&#xff0c;即work的进程是固定不变的。dynamic&#xff1a;动态管理进程。在fpm启动时先…

THU – team players 合作精神

我朝的教育体系虽然时不时灌输“互相帮助”的精神&#xff0c;但是所有小考&#xff0c;中考&#xff0c;大考&#xff0c;无一不是考察个人独立作战。你要互相帮助&#xff0c;不但违反考场纪律&#xff0c;而且其他同学的好成绩对你是一个直接的威胁。 在这种价值体系下产出的…

PKU 学生的反馈 2009-1

反馈1: 软件实现技术课程总结 (1) 本学期的《软件实现技术》课程顺利结束了。作为选择这门课的学生&#xff0c;我在这里对这门课做一个回顾&#xff0c;并总结一下我对这门课的一些感受。 《软件实现技术》这门课是微软和北大软件与微电子学院合作的一门课程&#xff0c;课…

php 导出txt 缩进,indent - 缩进文本

缩进每一行的字符串&#xff0c;默认是缩进4个空格。 可选的参数可以设置缩进的空格数量。 可选的第二个参数设置缩进使用的字符&#xff0c;如用 "\t" 来代替空格缩进。参数顺序类型必选参数默认值说明1integerNo4设置缩进多少空格2stringNo一个空格设置用什么字符来…

PKU 学生的反馈 2009 –2

《软件实现技术》课程总结 从义无反顾选择了《软件实现技术》这门课程到现在已经整整4个月了&#xff0c;现在课程完满结束&#xff0c;有些东西是该总结一下了。 第一次上课的时候&#xff0c;除了软微的蒋老师、郁老师&#xff0c;微软的几位老师也参加了。邹欣老师强调作业…

oracle中主键自增长,oracle 数据库主键自动增长方法

oracle 数据库没有像 MYSQL一样有 自动ID增值 的功能&#xff0c;如要实现可以用触发器。首先就是建立一个序列&#xff0c;序列有有自动增值的功能,再建立一个触发器。如&#xff1a;建立一个序列CREATE SEQUENCE auto_seqminvalue 1 -- 最小值increment by 1 -- 每次增加值数…

PKU 学生反馈 3

[罗列了一些学生的反馈] 1. 作业的内容与时间要求上更加固定、明确。或者对于变化预先说明。 2. 课程的理论部分可以更加吸引人&#xff0c;该部分通过预习-考试-讲解的方式加深理解。 3. 预先说明本课程的定位 4. 希望每个团队有一个mentor知道下项目开发过程。 5. 对于所…

oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作

--1、查看表空间的名称及大小SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0)ts_sizeFROM dba_tablespaces t, dba_data_files dWHERE t.tablespace_name d.tablespace_nameGROUP BY t.tablespace_name;--2、查看表空间物理文件的名称及大小SELECT tablespac…

PKU 学生反馈 2009 - 4

匿名反馈&#xff0c;分值为 1..9 分。 1 content depth 7.31 您对课程内容深度的满意程度 How satisfied are you with the content depth? 2 topic coverage 7.39 您对教材内容广度的满意程度 How satisfied are you with the topic coverage? 3 slides 7.62 您对投…

php sql好处,关于php:使用Doctrine与SQL相比,使用DQL有什么好处?

当在使用Doctrine类时需要自定义查询时&#xff0c;有人可以为我提供一些明确的理由(支持事实)来使用/学习DQL与SQL吗&#xff1f;我发现&#xff0c;如果无法使用ORM的内置关系功能来实现某些目标&#xff0c;通常会在扩展的Doctrine或DoctrineTable类中编写自定义方法。在这种…

我写的博客居然是百度搜索第一名 - 感谢国家 …

http://www.baidu.com/s?bs%BD%E1%BB%E9%C2%BC%CF%F1%BA%CD%CF%E0%B2%E1%BC%AF&f8&wd%CE%D2%BA%CD%CB%FB%B5%C4%BD%E1%BB%E9%C2%BC%CF%F1%BA%CD%CF%E0%B2%E1%BC%AF 而且这个“结婚录像和相册集”还在传播中&#xff0c; 刚刚看到 Tao Mei 同学也在他的space 中加上了。…

CSDN 首页的第一屏 广告/新闻 比率 = 40 : 2

有一天我不小心开了 www.csdn.net, 定睛端详许久&#xff0c; 我只看到 2 条新闻 (连线杂志 和 金山震荡) 。 其他的除了两行导航条&#xff0c;都是广告 &#xff08;导航条下面的那一行看似第三条导航条&#xff0c;其实也是广告&#xff09;。 其中右下角的窗口上有六个广…

php 跳板机连接mysql,使用python如何通过跳板机连接MySQL数据库

生产环境中&#xff0c;为了安全起见&#xff0c;大多数的数据库是无法在本地直接访问的&#xff0c;需要先连接跳板机&#xff0c;然后通过跳板机访问。创业天下测试数据库也是采用这种方法连接数据的&#xff0c;那么我们应该怎么通过Python去连接数据库呢&#xff0c;代码如…

2010 北大软件及微电子学院 《软件实现技术》小组博客

请各小组在live space上以组为单位建立博客&#xff0c;并加教师博客为好友&#xff0c;然后在这篇日志下面回复小组博客地址。谢谢

去 QCon 学习

他山之石&#xff0c;可以攻玉。就看你的项目有多少“玉”的成分&#xff0c;究竟敢不敢用“石”来攻。 QCon Beijing 2010 | 全球企业开发大会&#xff08;北京站&#xff09; 大会&#xff1a;4 月23 日~4 月25 日&#xff1b;培训&#xff1a;4 月21 日~4 月22 日 大会地点…

oracle merge 效率慢,更新语句的效率比较(merge into )

昨晚更新了一批数据&#xff0c;用update的老办法耗时20多分&#xff0c;而用 merge into 不到2秒结束&#xff0c;效率真是天壤之别。具体见下&#xff1a;用T_TMP_SCHOOL(135868行)的BIRTH 字段更新T_TMP_NT_CUSTOMERDETAIL( 763119行) 的BIRTHDATE 字段&#xff0c;连接条件…

first review of team blog(4.26)

team score team1 10team2 0team3 0team4 0team5 0team6 9team7 0team8 0team9 0team10 0

精准营销联系oracle,正确打开精准营销:用营销自动化技术发挥数据价值

正确打开精准营销&#xff1a;用营销自动化技术发挥数据价值甲骨文认为&#xff0c;以”数据优先”之道来管理客户体验&#xff0c;是让每一次客户互动都能真正发挥价值的重要方式。但是&#xff0c;当前复杂的商业环境瞬息万变&#xff0c;无可避免地直接影响着企业的营销战略…

Homework2-project review score of each team

team score Team19Team28Team34Team44Team515Team65Team77Team83Team96Team102