PHP文件上传失败如何解决,怎样限制上传文件大小

Admin 2022-10-19 群英技术资讯 311 次浏览

在实际应用中,我们有时候会遇到“PHP文件上传失败如何解决,怎样限制上传文件大小”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“PHP文件上传失败如何解决,怎样限制上传文件大小”文章能帮助大家解决问题。


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

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

3、重启服务器即可。

使用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文件上传失败如何解决,怎样限制上传文件大小”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服