深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 529|回复: 0

php优化文件上传案例附代码教程

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-11-24 18:29:59 | 529 | 0 | 显示全部楼层 |阅读模式
php优化文件上传案例附代码教程

步骤
第一步:验证是否有误
第二步:验证格式
第三步:验证大小
第四步:验证是否是http上传
第五步:上传实现
  1. <body>
  2. <?php
  3. /**
  4. *验证错误
  5. *如果有错,就返回错误,如果没错,就返回null
  6. */
  7. function check($file) {
  8.         //1:验证是否有误
  9.         if($file['error']!=0){
  10.                 switch($file['error']) {
  11.                         case 1:
  12.                                 return '文件大小超过了php.ini中允许的最大值,最大值是:'.ini_get('upload_max_filesize');
  13.                         case 2:
  14.                                 return '文件大小超过了表单允许的最大值';
  15.                         case 3:
  16.                                 return '只有部分文件上传';
  17.                         case 4:
  18.                                 return '没有文件上传';
  19.                         case 6:
  20.                                 return '找不到临时文件';
  21.                         case 7:
  22.                                 return '文件写入失败';
  23.                         default:
  24.                                 return '未知错误';
  25.                 }
  26.         }
  27.         //2、验证格式
  28.         $info=finfo_open(FILEINFO_MIME_TYPE);
  29.         $mime=finfo_file($info,$file['tmp_name']);
  30.         $allow=array('image/jpeg','image/png','image/gif');        //允许的类别
  31.         if(!in_array($mime,$allow)){
  32.                 return '只能上传'.implode(',',$allow).'格式';
  33.         }
  34.         //3、验证大小
  35.         $size=123456789;
  36.         if($file['size']>$size){
  37.                 return '文件大小不能超过'.number_format($size/1024,1).'K';
  38.         }
  39.         //4、验证是否是http上传
  40.         if(!is_uploaded_file($file['tmp_name']))
  41.                 return '文件不是HTTP POST上传的<br>';

  42.         return null;  //没有错误
  43. }

  44. //表单提交
  45. if(!empty($_POST)) {
  46.         //上传文件过程中有错误就显示错误
  47.         if($error=check($_FILES['face'])){
  48.                 echo $error;
  49.         }else{
  50.                 //文件上传,上传的文件保存到当天的文件夹中
  51.                 $foldername=date('Y-m-d');                //文件夹名称
  52.                 $folderpath="./uploads/{$foldername}";        //文件夹路径
  53.                 if(!is_dir($folderpath))
  54.                         mkdir($folderpath);
  55.                 $filename=uniqid('',true).strrchr($_FILES['face']['name'],'.');        //文件名
  56.                 $filepath="$folderpath/$filename";        //文件路径
  57.                 if(move_uploaded_file($_FILES['face']['tmp_name'],$filepath))
  58.                         echo "上传成功,路径是:{$foldername}/{$filename}";
  59.                 else
  60.                         echo '上传失败<br>';
  61.         }

  62. }
  63. ?>
  64. <form method="post" action="" enctype='multipart/form-data'>
  65.         <input type="file" name="face">
  66.         <input type="submit" name="button" value="上传">
  67. </form>
  68. </body>
复制代码
运行结果
代码运行结果.jpg
小结:

1、将时间戳转换格式

  1. echo date('Y-m-d H:i:s',1231346),'<br>';                //将时间戳转成年-月-日 小时:分钟:秒
  2. echo date('Y-m-d H:i:s'),'<br>';        //将当前的时间转成年-月-日 小时:分钟:秒
复制代码
2、设置时区(php.ini)

php基础教程.jpg

  1. PRC:中华人民共和国
复制代码

楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表