1、修改php.ini,设置上传文件的大小。
2、在httpd.conf中添加“php_value upload_max_filesize \”300M\””。
3、重启服务器即可。
使用ThinkPhp框架上传小图片文件成功,上传大文件失败。
后来查找了原因,是因为php限制了上传文件的大小,修改php.ini如下配置:
upload_max_filesize = 300Mpost_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_filesizebreak;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没有文件被上传的实例分析及解决办法的文章就介绍到这了,更多相关php没有文件被上传的解决办法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- php安全攻防利用文件上传漏洞与绕过技巧详解
- PHP之修改php.ini文件上传大小的配置问题案例讲解
- php 文件上传至OSS及删除远程阿里云OSS文件
- Vue+thinkphp5.1+axios实现文件上传
- phpcmsv9.0任意文件上传漏洞解析
- PHP 实现base64编码文件上传出现问题详解
- PHP实现文件上传与下载