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(); }
© 版权声明
THE END
暂无评论内容