修改PHP上传文件大小限制
展开全部
1. 在php.ini中,做如下修改:
file_uploads = on
upload_tmp_dir = /home/upload
upload_max_filesize = 4000M
post_max_size = 4000M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数:
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
2. 在要确认上传的 <form> 里加入以下行:
<input type="hidden" name="MAX_FILE_SIZE" value="4000000000">
3. $_FILES["userfile"]["error"]返回值说明:
$_FILES['teacher_pic']['error'] = 1 文件大小超过了PHP.ini中的文件限制
$_FILES['teacher_pic']['error'] = 2 文件大小超过了浏览器限制
$_FILES['teacher_pic']['error'] = 3 文件部分被上传
$_FILES['teacher_pic']['error'] = 4 没有找到要上传的文件
$_FILES['teacher_pic']['error'] = 5 服务器临时文件夹丢失
$_FILES['teacher_pic']['error'] = 6 文件写入到临时文件夹出错
$_FILES['teacher_pic']['error'] = -1 末充许的类型
$_FILES['teacher_pic']['error'] = -2 文件过大,上传文件不能超过{$this->maxSize}个字节
$_FILES['teacher_pic']['error'] = -3 上传失败
$_FILES['teacher_pic']['error'] = -4 建立存放上传文件目录失败,请重新指定上传目录
$_FILES['teacher_pic']['error'] = -5 必须指定上传文件的路径
file_uploads = on
upload_tmp_dir = /home/upload
upload_max_filesize = 4000M
post_max_size = 4000M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数:
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
2. 在要确认上传的 <form> 里加入以下行:
<input type="hidden" name="MAX_FILE_SIZE" value="4000000000">
3. $_FILES["userfile"]["error"]返回值说明:
$_FILES['teacher_pic']['error'] = 1 文件大小超过了PHP.ini中的文件限制
$_FILES['teacher_pic']['error'] = 2 文件大小超过了浏览器限制
$_FILES['teacher_pic']['error'] = 3 文件部分被上传
$_FILES['teacher_pic']['error'] = 4 没有找到要上传的文件
$_FILES['teacher_pic']['error'] = 5 服务器临时文件夹丢失
$_FILES['teacher_pic']['error'] = 6 文件写入到临时文件夹出错
$_FILES['teacher_pic']['error'] = -1 末充许的类型
$_FILES['teacher_pic']['error'] = -2 文件过大,上传文件不能超过{$this->maxSize}个字节
$_FILES['teacher_pic']['error'] = -3 上传失败
$_FILES['teacher_pic']['error'] = -4 建立存放上传文件目录失败,请重新指定上传目录
$_FILES['teacher_pic']['error'] = -5 必须指定上传文件的路径
展开全部
在于php的配置文件php.ini配置和系统本身限制配置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我简单的写一个PHP上传代码。PHP代码如下:
<?php
//0; 文件上传成功。
//1; 超过了文件大小php.ini中。
//2; 超过了文件大小 MAX_FILE_SIZE 选项指定的值。
//3; 文件只有部分被上传。
//4; 没有文件被上传。
//5; 上传文件大小为0。
if (is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
echo "错误代码:".$error."<br>";
echo "临时文件名:".$tmp_name."<br>";
echo "文件大小:".$size."<br>";
echo "MIME类型:".$type."<br>";
echo "原名称:".$name."<br>";
move_uploaded_file($tmp_name,'uploadimg/'.$name);
echo "上传成功";
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- 注意加上,不然页面访问会出现乱码-->
<form action="" enctype="multipart/form-data" method="post" name="upform">
上传文件:
<input name="upfile" type="file">
<input type="submit" value="上传"><br>
</form>
有两个问题需要注意的:
1.代码并没有任何格式或大小的限制,但php.ini本身就已经限制了2M的大小
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
所以可以修改
2.代码里
move_uploaded_file($tmp_name,'uploadimg/'.$name);
指定 uploadimg 目录,而一般我们在linux下新建之后由于权限不足会导致上传失败。
所以手动来创建文件夹并修改权限
linux-k2b4:/srv/www/htdocs/php # mkdir uploadimg
linux-k2b4:/srv/www/htdocs/php # chmod -R 777 uploadimg/
之后代码就可以成功运行了。
<?php
//0; 文件上传成功。
//1; 超过了文件大小php.ini中。
//2; 超过了文件大小 MAX_FILE_SIZE 选项指定的值。
//3; 文件只有部分被上传。
//4; 没有文件被上传。
//5; 上传文件大小为0。
if (is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
echo "错误代码:".$error."<br>";
echo "临时文件名:".$tmp_name."<br>";
echo "文件大小:".$size."<br>";
echo "MIME类型:".$type."<br>";
echo "原名称:".$name."<br>";
move_uploaded_file($tmp_name,'uploadimg/'.$name);
echo "上传成功";
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- 注意加上,不然页面访问会出现乱码-->
<form action="" enctype="multipart/form-data" method="post" name="upform">
上传文件:
<input name="upfile" type="file">
<input type="submit" value="上传"><br>
</form>
有两个问题需要注意的:
1.代码并没有任何格式或大小的限制,但php.ini本身就已经限制了2M的大小
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
所以可以修改
2.代码里
move_uploaded_file($tmp_name,'uploadimg/'.$name);
指定 uploadimg 目录,而一般我们在linux下新建之后由于权限不足会导致上传失败。
所以手动来创建文件夹并修改权限
linux-k2b4:/srv/www/htdocs/php # mkdir uploadimg
linux-k2b4:/srv/www/htdocs/php # chmod -R 777 uploadimg/
之后代码就可以成功运行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在PHP.INI里面改
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询