`

使用PHP处理POST上传时$_FILES数组为何为空

阅读更多

      在做一个简单的表单上传测试时,服务端的php脚本中,$_FILES数组为空;这样就不能获取从浏览器上传的信息.什么原因呢?

      通过Google,找到下面这个web:

      php上传文件$_FILES数组为空的解决办法


      在测试时遇到的情况,属于文中描述的第一种原因,即:上传文件的表单中未设置属性 enctype="multipart/form-data".

      下面对其全文转贴于下:


php上传文件$_FILES数组为空的解决办法:
用php做上传文件的应用时,在后台打印$_FILES时发现为空数组,出现这个问题可能有以下两个原因:
表单类型原因或者php设置问题:
1,表单类型:
上传文件的表单编码类型必须设置成 enctype="multipart/form-data",因为要传大数据,一般提交方式用POST。

2,php设置问题:

php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES 超全局变量便会为空. 解决的方法是:
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完. 但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行. 这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time 在php.ini里查找 max_execution_time 默认是30秒.改为 max_execution_time = 0(可修改范围为PHP_INI_ALL) 0表示没有限制
或者在php文件头设置ini_set('max_execution_time',0);
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。 查找 post_max_size .改为 post_max_size = 150M(可修改范围为PHP_INI_PHP_INI_PERDIR)
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M. 为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。 查找upload_max_filesize,默认为8M改为 upload_max_filesize = 100M(可修改范围为PHP_INI_PHP_INI_PERDIR)
另外要说明的是post_max_size是整个表达的大小,而upload_max_filesize是上传文件的大小,前者应大于后者.

分享到:
评论

相关推荐

    PHP中$_FILES的使用方法及注意事项说明

    $_FILES:经由 HTTP POST 文件上传而提交至脚本的变量,类似于旧数组$HTTP_POST_FILES 数组(依然有效,但反对使用)详细信息可参阅 POST方法上传 $_FILES数组内容如下: $_FILES[‘myFile’][‘name’] 客户端文件的...

    php_sql.zip_Known_c php post_json文件转换_php 数组 转 sql

    将数组,HTML,XML或JSON文件转换为SQL语法。 使用 ======================== - SELECT *FROM myArray ORDER BY key DESC,value ASC, - SELECT key,value FROM myArray WHERE value= 100 , - SELECT * FROM json_...

    解析PHP中$_FILES的使用以及注意事项

    $_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)

    DX1.5 手机正式版

    if (isset($_GET['GLOBALS']) ||isset($_POST['GLOBALS']) || isset($_COOKIE['GLOBALS']) || isset($_FILES['GLOBALS'])) { error(‘request_tainting’); } //是否开启rewrite if(!empty($_GET['rewrite'])) { $...

    比较好用的PHP防注入漏洞过滤函数代码

    $_POST = sec ( $_POST ); $_COOKIE = sec ( $_COOKIE ); $_FILES = sec ( $_FILES ); } $_SERVER = sec ( $_SERVER ); function sec(&$array) { //如果是数组,遍历数组,递归调用 if (is_array

    邓炜PHP基本语法(五)状态维持上

    $HTTP_POST_FILES(简写:$_FILES) 包含有关上传文件的信息。 $HTTP_SERVER_VARS(简写:$_SERVER) 包含有关WEB服务器的有用信息(将在下一节描述) $HTTP_ENV_VARS(简写:$_ENV) 包含环境变量值,数组的...

    PHP中$GLOBALS与global的区别详解

    PHP中$GLOBALS和global都可以实现全局...$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。 官方说明: $GLOBALS — 引用全局作用域中可用的全部变量。 一个包含了全部变量的全局

    php学习笔记 [预定义数组(超全局数组)]

    在函数中直接可以使用这些数组 * * $_GET //经由URL请求提交至脚本的变量 * $_POST //经由HTTP POST 方法提交到脚本的变量 * $_REQUEST //经由GET , POST和COOKIE机制提交 到脚本的变量 * $_FILES //经由htt

    PHP预定义变量9大超全局数组用法详解

    本文主要介绍PHP9个超全局数组$_SERVER、$_GET、$_POST、$_COOKIE、$_FILES、$_ENV、$_REQUEST、$_SESSION、$GLOBALS的详细用法。

    认识并使用PHP超级全局变量

    认识并使用PHP超级全局变量 超级全局...类似于旧数组 $_GET 经由 URL 请求提交至脚本的变量。 $_POST 经由 HTTP POST 方法提交至脚本的变量。 $_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量。 $_FILES 经由 HTTP

    PHP与Web页面交互 -文件上传和下载.ppt

    编写处理表单提交的PHP脚本 当用户通过上传表单选择一个文件并提交后,PHP会自动生成一个$_FILES的二维数组,该数组保存了上传文件的信息。 一、上传文件 <form enctype="multipart/form-data" method="post" action...

    基于java的企业级应用开发:文件上传和下载.ppt

    编写处理表单提交的PHP脚本 当用户通过上传表单选择一个文件并提交后,PHP会自动生成一个$_FILES的二维数组,该数组保存了上传文件的信息。 一、上传文件 <form enctype="multipart/form-data" method="post" action...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a $b :小于 $a $b :小于等于 $a > $b :大于 $a >= $b :大于等于 与C一样PHP也有...

    PHP实现文件分片上传的实例代码

    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错 3.memory_limit=50M 设置脚本...

    大名鼎鼎SWFUpload- Flash+JS 上传

     file_post_name : "Filedata", 是POST过去的$_FILES的数组名  post_params : {  "post_param_name_1" : "post_param_value_1",  "post_param_name_2" : "post_param_value_2",  "post_param_name_n" : ...

    高性能服务框架ZYS.zip

    $fileinfo = array('type'=>'file','data'=>array('path' =>'/public/uploads/'.date('Ymd').'/'.$filename,'size'=>$_FILES['file']['size'],'ext'=>$upname[1])); var_dump(distributed::getInstance()->query...

    php的文件上传入门教程(实例讲解)

    件作为一种特殊的表单数据,通过http post请求方式提交至服务器的时候,php会生成一个$_FILES全局数组,相关的文件信息会存放在这个全局数组中。我将在这篇文章中通过一些示例代码来阐述php下的文件上传,并且深入看...

    ZendFramework中文文档

    8.1.1. 为什么使用 Zend_Currency ? 8.2. 如何使用货币 8.2.1. 从货币创建输出 8.2.2. 修改货币格式 8.2.3. Zend_Currency 的信息方法 8.2.4. 设置新缺省值 8.2.5. 加速 Zend_Currency 8.3. 从前面的版本迁移...

    ChineseFramework大型WEB应用框架程序

    并支持多种参数形式, 如键为字段名, 数组值为字段值的PHP数组, 如: array( field1 => xxx, field2 => xxx2, ) 也可是设置好的字段($tblObj->setFields(array( field1 , field2 )) $tblObj->insert...

Global site tag (gtag.js) - Google Analytics