php文件上传MAX_FILE_SIZE不起作用的问题
2013-04-17 17:11
525 查看
最近在学习php的文件上传,学完后自己试着联系下,文件类型大小的判断都没有问题,最后也成功上传了,但是$_FILES['pic']['error']==2时怎么都搞不出来,弄得老大郁闷。刚开始代码如下:
HTML页面:
<form action='upload.php' method="post" enctype="multipart/form-data">
图片:<input type="file" name='pic'/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000"/>
<input type="submit" value='上传'/>
</form>
PHP页面:
<?php
$maxsize=1024000; //上传文件最大值为1M
$types=array("jpg","png","gif");
$name=$_FILES['pic']["name"];
$filepath="./uploads";
//配置上传目录
if(!file_exists($filepath)){
mkdir($filepath);
}
//1判断错误类型
if($_FILES['pic']['error']>0){
switch($_FILES['pic']['error']){
case 1:
$error='上传文件超过了php.ini的upload_max_filesize值的大小';
break;
case 2:
$error='上传文件超过了HTML表单的MAX_FILE_SIZE值的大小';
break;
case 3:
$error='只有部分文件被上传';
break;
case 4:
$error='没有文件被上传';
break;
default:
$error='未知错误';
}
echo $error;
exit;
}
//2判断文件类型
$name=$_FILES['pic']["name"];
$start=strrpos($name,'.')+1;
$filetype=substr($name,$start);
if(!in_array($filetype,$types)){
die('文件类型不正确');
}
//3判断文件大小
if($_FILES['pic']['size']>$maxsize){
die('文件过大');
}
//4对上传文件重命名
$newfilename=date("YmdHis").rand(100,999).".".$filetype;
//5移动文件
$newfile=rtrim($filepath,'/')."/".$newfilename;
if(is_uploaded_file($_FILES['pic']['tmp_name'])){
if(move_uploaded_file($_FILES['pic']['tmp_name'],$newfile)){
echo '上传成功';
}else{
echo '上传失败';
}
}else{
die("不是一个上传文件");
}
?>
最后和别人写的代码对比了下,发现问题很简单,必需把<input type="hidden" name="MAX_FILE_SIZE" value="100000"/> 移到 图片:<input type="file" name='pic'/>才可以,再上传超过100k的图片便会报错了。
HTML页面:
<form action='upload.php' method="post" enctype="multipart/form-data">
图片:<input type="file" name='pic'/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000"/>
<input type="submit" value='上传'/>
</form>
PHP页面:
<?php
$maxsize=1024000; //上传文件最大值为1M
$types=array("jpg","png","gif");
$name=$_FILES['pic']["name"];
$filepath="./uploads";
//配置上传目录
if(!file_exists($filepath)){
mkdir($filepath);
}
//1判断错误类型
if($_FILES['pic']['error']>0){
switch($_FILES['pic']['error']){
case 1:
$error='上传文件超过了php.ini的upload_max_filesize值的大小';
break;
case 2:
$error='上传文件超过了HTML表单的MAX_FILE_SIZE值的大小';
break;
case 3:
$error='只有部分文件被上传';
break;
case 4:
$error='没有文件被上传';
break;
default:
$error='未知错误';
}
echo $error;
exit;
}
//2判断文件类型
$name=$_FILES['pic']["name"];
$start=strrpos($name,'.')+1;
$filetype=substr($name,$start);
if(!in_array($filetype,$types)){
die('文件类型不正确');
}
//3判断文件大小
if($_FILES['pic']['size']>$maxsize){
die('文件过大');
}
//4对上传文件重命名
$newfilename=date("YmdHis").rand(100,999).".".$filetype;
//5移动文件
$newfile=rtrim($filepath,'/')."/".$newfilename;
if(is_uploaded_file($_FILES['pic']['tmp_name'])){
if(move_uploaded_file($_FILES['pic']['tmp_name'],$newfile)){
echo '上传成功';
}else{
echo '上传失败';
}
}else{
die("不是一个上传文件");
}
?>
最后和别人写的代码对比了下,发现问题很简单,必需把<input type="hidden" name="MAX_FILE_SIZE" value="100000"/> 移到 图片:<input type="file" name='pic'/>才可以,再上传超过100k的图片便会报错了。
相关文章推荐
- php中的MAX_FILE_SIZE,文件上传限制和bug
- 设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题(报错 http 413 error)
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- nginx+php搭建的PHP上传大文件出现的问题client_max_body_size
- PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
- PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法
- nginx+php 上传文件大小的问题client_max_body_size
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- nginx的client_max_body_size解决nginx+php上传大文件的问题
- [转]通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 上传文件过大的问题FileUploadBase$SizeLimitExceededException
- Struts2中文件过大上传失败问题解决方案org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException
- PHP上传MAX_FILE_SIZE相关
- php 修改上传文件大小 (max_execution_time post_max_size)
- 关于PHP中文件上传中的post_max_size与upload_max_filesize
- php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项