
正文
php一次上传50W数据 php最大上传文件大小
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何正确调整PHP上传附件大小限制
修改一下php.ini文件。
需要服务器权限才可修改!!
需要在PHP.ini里设置以下几项:
1. post_max_size =10M
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
2.file_uploads = On
是否允许上传文件,如果为OFF您将不能上传文件.
3.upload_tmp_dir = "D:/APM/PHP/uploadtemp/"
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.
4.upload_max_filesize =2M
最大上传文件大小,此项针对上传文件时单个文件的大小.
与post_max_size之间的关系:
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.
您可以在WEB目录下建立一个php文件,内容很简单就一句话
代码:
?php
phpinfo();
?
浏览器中查看此文件, Configuration File (php.ini) Path 此项对应的就是您的PHP当前正在使用的php.ini文件了.
相关问答
Q1: php多行文本表单,如何一次提交多条数据?
文本的名字加上中括号即可实现,比如: name="contents" = name="contents[]",最后提交获取到的数据是一个数组形式的。
代码如下:
form name="form1" method="post" action="index.php?action=ok"
1.input type="text" name="contents[]" value=""
2.input type="text" name="contents[]" value=""
3.input type="text" name="contents[]" value=""
input type="submit" value="提交"
/form
?php
if($_GET['action'] == 'ok'){
$contents = $_POST['contents'];
print_r($contents);
}
?
提交的数据使用时,遍历即可。
Q2: php如何实现一次性上传多个文件
?php
$max_files=5; //最多上传文件的个数,与 up.htm 中的 input file 控件的个数相同
$up_ok_files=0; //成功上传的文件个数
$up_folder="ups"; //保存上传文件的目标文件夹
if(isset($_FILES['myfile'])){
//由于 $_FILES['myfile'] 是个数组,所以需要使用循环遍历
for($i=0;$i$max_files;$i++){
//如果未出错
if($_FILES['myfile']['error'][$i]==0){
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){
//成功上传后,计数器增 1
$up_ok_files +=1;
}
else{
echo "h4 style='color:red;'在服务器中保存失败/h4";
}
}
}
echo "h4成功上传 ".$up_ok_files. " 个文件/h4";
}
?
如果对 $_FILES['myfile'] 这个数组的结构不清楚,那么可以在循环之前加入这句代码将其显示出来:
print_r($_FILES['myfile']);
对这个数组的结构了解之后,理解上述代码就比较容易了。
foreach循环实现
常规下,php上传一张图片,页面上添加一个文件域,上传后,得到的数组是二维数组
转变一下,
页面上添加多个文件域,并且他们的name属性相同,而且是以数组形式提交(比如:name="file[]")
那么上传后,得到的是三维数组
而,php中,foreach循环对遍历数组那真是完美至极
用foreach遍历一次这个三维数组,得到的结果就又是二维数组,那么,就和上传一张图片一样一样的了
Q3: Php程序MyAdmin导入数据库超限制怎么办
解决方法如下:
(1)修改php.ini适用自己有服务器的人
大多数都修改php.ini中的upload_max_filesize,但修改了这个以后,还是提示这个问题;
那么更改如下几处:
修改 PHP.ini
file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize 20m 望文生意,即允许上传文件大小的最大值。默认为2M
post_max_size 30m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
说明
一般地,设置好上述四个参数后,在网络正常的情况下,上传=8M的文件是不成问题
但如果要上传8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。
max_execution_time 300 每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time 300 每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit 128m 每个PHP页面所吃掉的最大内存,默认8M
设定 POST 数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
如果配置脚本中激活了内存限制,memory_limit 也会影响文件上传。通常说,memory_limit 应该比 post_max_size 要大。
(2)这个方法很简单,不需要修改php.ini参数, 适用把站放在虚拟主机的人。
打开phpMyAdmin目录下的配置文件:config.inc.php
请注意其中的这两个参数:
$cfg['UploadDir'] = ‘A‘;
$cfg['SaveDir'] = ‘B‘;
在phpMyAdmin目录下自行建立文件夹A和B来对应UploadDir(导入目录)和SaveDir(导出目录)。
导出操作:
1、登陆phpMyAdmin
2、在左侧选中你需要备份导出的数据库
3、在右侧窗口中找到“导出”
4、在右侧窗口底部选择“保存于服务器的 B/ 目录”
5、选择压缩模式,提交“执行”即可在B文件夹中找到该数据库的导出数据。
导入操作:
1、上传准备导入的数据文件到A目录
2、登陆phpMyAdmin
3、在左侧选中你需要备份导出的数据库
4、在右侧窗口中找到“Import”(导出)
5、在右侧窗口“网站服务器上载目录”中选择需要导入的数据文件,提交“执行”完成导入
Q4: 求php怎么实现web端上传超大文件
加大PHP上传文件大小php一次上传50W数据的限制,是通过修改PHP.INI文件来实现,但是这个支持是有限度的,因为WEB协议本为下载而生,超大文件的上传是FTP的专利。
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。
1.file_uploads=on/off
是否允许通过http方式上传文件
2.max_execution_time=30
允许脚本最大执行时间,超过这个时间就会报错
3.memory_limit=50M
设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置php一次上传50W数据了
--enable-memory-limit标志的情况下才生效
4.upload_max_filesize=20M
允许上传文件的最大大小,此指令必须小于post_max_size
5.upload_tmp_dir
上传文件临时存放目录
6.post_max_size=30M
允许post方式可以接受最大大小
$_FILES['myFile']['name'] 客户端上次文件的原始名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的状态码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成php一次上传50W数据了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。
也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。
附:修改PHP上传文件大小限制的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
php一次上传50W数据的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php最大上传文件大小、php一次上传50W数据的信息别忘了在本站进行查找喔。






