PHP文件上传失败如何解决,怎样限制上传文件大小
Admin 2022-10-19 群英技术资讯 576 次浏览
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 (); } |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天小编就为大家分享一篇Laravel获取当前请求的控制器和方法以及中间件的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本文所介绍的除法表与我们耳熟能详的九九乘法表(“一一得一”开始,到“九九八十一”为止)是不同的,下文中实现的除法表只是让大家了解学习使用PHP实现10X10除法表的思路,不是让大家当九九乘法表来背诵啊哈哈~
php中__sleep方法的使用:1、在类的外部调用serialize()时自动调用。2、__sleep()方法通常用于提交未提交的数据或类似的清理操作。如果有一些大对象,但不需要完全保存,这个功能非常有用。
这篇文章主要介绍php中extract函数,对新手学习和理解extract函数的用处和用法有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
这篇文章主要介绍的是laravel框架的数据库操作,包括DB facade[原始查找],查询构造器[Query Builder]和Eloquent ORM,小编觉得是比较实用的,有需要的朋友可以参考参考。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008