首页 > 编程语言 >php没有文件被上传的实例分析及解决办法

php没有文件被上传的实例分析及解决办法

时间:2023-02-05 21:34:32浏览次数:36  
标签:case 解决办法 文件 echo error php 上传

修改PHP.ini,设置上传文件的大小。

Httpd.conf中添加“php_value upload_max_filesize "300M"”。

重启服务器即可。

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

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


upload_max_filesize = 300M
post_max_size = 300M

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

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


php_value upload_max_filesize "300M"
php_value post_max_size "300M"

再次重启服务器,OK!

知识点扩展:

错误处理

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


$error=$myfile['myfile']['error'];
  if ($error==0){//为0,代表上传成功
    if (move_uploaded_file($tmp,"userpic/".$picname)) {
      echo "移动文件成功";
    }else{
      echo "移动文件失败";
    }
  }else{//不为0,匹配错误信息
    switch ($error){
      case 1:
        echo "超过文件最大上传限制";//php.ini中upload_max_filesize
        break;
      case 2:
        echo "超过表单文件大小限制";//html表单中MAX_FILE_SIZE选项
        break;
      case 3:
        echo "文件部分被上传";
        break;
      case 4:
        echo "未选择上传文件";
        break;
      case 7://文件写入失败
      case 8:
        echo "系统错误";
        break;
    }
  }

上传限制

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


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

注意限制是以字节为单位

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


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

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

标签:case,解决办法,文件,echo,error,php,上传
From: https://www.cnblogs.com/dituirenwu/p/17093974.html

相关文章

  • php两种基本的输出方及实例详解
    在PHP中,有两种基本的输出方法:echo和print。echo和print之间的差异echo-输出一个或多个字符串,可以接受多个参数并且没有返回值print-只能输出一个字符串,只能......
  • PHP遍历数组的6种方式总结
    目录1、foreach2、array_map3、array_walk4、for5、each6、reset总结在PHP的日常操作中,数组是最常出现的结构,而我们几乎每天都在处理数组相关的内容。那么问题来......
  • 关于PHP数组迭代器的使用方法实例
    近来在开发一个视力筛查电子报告系统的产品,这个产品的作用是自动提取视力筛查过程中得到的屈光检查数据,并结合数据自动生成通俗易懂且专业的电子报告,以方便家长可以通过公......
  • PHP对接抖音开发平台接口的详细教程
    目录一、说明二、代码三、代码运行需知四、功能扩展五、接口调用需要注意的点六、接口文档中的‘坑'(以订单列表接口为例)1、请求参数、响应参数代表的具体值不清......
  • PHP7中对十六进制字符串处理的问题详解
    本篇文章由PHP7教程栏目给大家介绍一下关于php7中"0xFFFFFFFF"和0xFFFFFFFF的问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。具体问题:$t1......
  • php生成唯一uid的解决方法详解
    目录一、生成唯一uuid二、生成唯一uid三、生成唯一uid的正确方法补充 一、生成唯一uuid看到某些人会用uuid去代替用户的uid从代码中可以看出,通过unique生成一个......
  • php操作ElasticSearch搜索引擎流程详解
    目录一、安装二、使用三、新建ES数据库四、创建表五、插入数据六、查询所有数据七、查询单条数据八、搜索九、测试代码〝古人学问遗无力,少壮功夫老始成〞......
  • "_OBJC_CLASS_$ [文件名1]referenced from in[文件名2]:ld: symbol(s) not found问题
    说实话开发一年多了,遇到了至少三次以上这种问题,很困惑,也很难搞觉得,其实很简单解决办法,在buildPhases中添加文件名1的.m文件即可了。"_OBJC_CLASS_$"PackageTourCustomAnnot......
  • PHP中 empty() 和 isset() 的区别介绍
    目录二者共同点二者区别1、对于未设置的变量的判断2、对于""(空字符串)的判断3、对于0(作为整数的0)的判断4、对于0.0(作为浮点数的0)的判断5、对于"0"......
  • php去掉一维数组的键值的实例方法
    在PHP中,数组的每个元素都是由键值对(key-value)组成,通过元素的键名来访问对应键的值。提示:“索引”和“键名”指的是同一样东西,“索引”多指数组数字形式的下标。有时......