查看: 2296|回复: 0

[在线活动] php没有文件被上传的实例分析及解决办法

[复制链接]

该用户从未签到

2

主题

2

帖子

0

新手上路

Rank: 1

积分
18
最后登录
2022-3-25
发表于 2022-3-23 18:19:41 | 显示全部楼层 |阅读模式
在本篇文章里小编给大家整理的是一篇关于php没有文件被上传的实例分析及解决办法,有兴趣的朋友们可以跟着学习参考下。


1、修改php.ini,设置上传文件的大小。

2、在httpd.conf中添加“php_value upload_max_filesize "300M"”。

3、重启服务器即可。

使用ThinkPhp框架上传小图片文件成功,上传大文件失败。

后来查找了原因,是因为php限制了上传文件的大小,修改php.ini如下配置:


  1. upload_max_filesize = 300M
  2. post_max_size = 300M
复制代码

重启服务器,依然如此,问题并未得到解决。

解决方法如下,在httpd.conf中添加如下:

  1. php_value upload_max_filesize "300M"
  2. php_value post_max_size "300M"
复制代码

再次重启服务器,OK!

知识点扩展:

错误处理

对file数组中的error属性进行判断处理:

  1. $error=$myfile['myfile']['error'];
  2.   if ($error==0){//为0,代表上传成功
  3.     if (move_uploaded_file($tmp,"userpic/".$picname)) {
  4.       echo "移动文件成功";
  5.     }else{
  6.       echo "移动文件失败";
  7.     }
  8.   }else{//不为0,匹配错误信息
  9.     switch ($error){
  10.       case 1:
  11.         echo "超过文件最大上传限制";//php.ini中upload_max_filesize
  12.         break;
  13.       case 2:
  14.         echo "超过表单文件大小限制";//HTML表单中MAX_FILE_SIZE选项
  15.         break;
  16.       case 3:
  17.         echo "文件部分被上传";
  18.         break;
  19.       case 4:
  20.         echo "未选择上传文件";
  21.         break;
  22.       case 7://文件写入失败
  23.       case 8:
  24.         echo "系统错误";
  25.         break;
  26.     }
  27.   }

复制代码
上传限制

在前端可以对上传的文件类型,大小进行限制:

  1. <!--表单隐藏域对上传大小进行限制-->
  2. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  3. <!--accept 对文件类型限制-->
  4. <input type="file" name="myfile" accept="image/jpeg,image/png">

复制代码

注意限制是以字节为单位

在服务器端也要做响应的限制:

  1. $size=$myfile['size'];//获取文件大小
  2. $MaxSize=2097152;//设置最大允许字节
  3. $type=$myfile['type'];//获取图片类型
  4. $AllowTypr=array('image/jpeg','image/png','image/gif');//允许类型数组
  5. if ($error==0){//为0,代表上传成功
  6.   if ($size>$MaxSize){
  7.     echo "<script>alert('文件大小超过限制');</script>";
  8.     echo "<script>history.back(1);</script>";
  9.     exit();
  10.   }
  11.   if (!in_array($type,$AllowTypr)){
  12.     echo "<script>alert('请上传正确图片类型');</script>";
  13.     echo "<script>history.back(1);</script>";
  14.     exit();
  15.   }

复制代码

到此这篇关于php没有文件被上传的实例分析及解决办法的文章就介绍到这了。


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 06:44 , Processed in 0.086242 second(s), 19 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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