1、点击提交按钮,浏览器用户将包含上传文件的表单数据提交给PHP处理程序
2、Web服务器和PHP预处理器首先判断表单数据的大小是否超过php.ini配置文件中post_max_size选项设置的上限。
如果超过,PHP处理程序将无法获取任何表单数据。 此时,除了上传文件失败之外,表单控件中填写的数据也会提交失败,也就是说:PHP处理程序预定义变量$_GET、$_POST、$_FILES将是一个空列表。 如果没有超过,则文件上传进入第三步检查。
3. 检查表单中的文件大小是否超过表单隐藏字段MAX_FILE_SIZE 设置的上限。
如果超过,PHP 预处理器返回状态码 2,文件上传失败。
如果没有,则上传文件并进入第4步检查。
(当有多个文件上传时,某个文件上传盒导致的文件上传失败,不会影响其他文件上传盒的上传结果)
4. 检查表单中的文件是否超过php.ini配置文件中upload_max_filesize选项设置的上限。
如果超过,PHP 预处理器返回状态码 1,文件上传失败。
如果没有php 多文件上传,请上传文件并进入步骤5进行检查。
5、在PHP中上传文件,需要在php.ini配置文件中upload_tmp_dir选项定义的目录下创建一个与上传文件对应的临时文件(默认扩展名为tmp)。 上传成功后,临时文件立即消失,并且 PHP 预处理器返回状态码 0。
并且有时由于听写原因(如max_execution_time选项设置太小或者网速慢等),上传部分文件后,剩余文件不会上传,导致文件上传失败。 此时PHP预处理器返回状态码3
如果通过,则上传文件并执行步骤6进行检查。
6、实现文件上传的关键步骤是在临时文件消失之前将临时文件保存到Web服务器或文件服务器上。 PHP提供的两个函数:is_uploaded_file()函数和move_uploaded_file()函数,可以帮助完成这一步
上传多个文件时,需要注意的是,同名保存的文件内容按照下面的方法放入链表中。 是五个字段php 多文件上传,按照文件的五个参数分别存储,而不是三个字段。 所以如果直接使用 count($_FILES['$myPicture']) ,答案是 5。
array (size=5) 'name' => array (size=3) 0 => string '1.txt' (length=5) 1 => string '2.txt' (length=5) 2 => string '3.txt' (length=5) 'type' => array (size=3) 0 => string 'text/plain' (length=10) 1 => string 'text/plain' (length=10) 2 => string 'text/plain' (length=10) 'tmp_name' => array (size=3) 0 => string 'D:wamp64tmpphpC5E8.tmp' (length=25) 1 => string 'D:wamp64tmpphpC5E9.tmp' (length=25) 2 => string 'D:wamp64tmpphpC5EA.tmp' (length=25) 'error' => array (size=3) 0 => int 0 1 => int 0 2 => int 0 'size' => array (size=3) 0 => int 0 1 => int 0 2 => int 0
索引.php 文件
文件系统文件
<?php if (empty($_POST)) { exit("提交的表单数据超过post_max_size的配置"); } $arr = $_FILES['myPicture']; $file =array(); for ($i=0; $i < count($arr['name']); $i++) { $file[$i]['name'] = $arr['name'][$i]; $file[$i]['type'] = $arr['type'][$i]; $file[$i]['tmp_name'] = $arr['tmp_name'][$i]; $file[$i]['error'] = $arr['error'][$i]; $file[$i]['size'] = $arr['size'][$i]; } for ($i=0; $i
【相关教程推荐】
1.php编程从入门到精通全套视频教程
2. PHP从入门到熟练
3.Bootstrap教程
发表评论