PHP基础参考05-关于文件上传
目录
支持上传多文件
数组 $_FILES[‘userfile’],$_FILES[‘userfile’][‘name’] 和 $_FILES[‘userfile’][‘size’] 将被初始化。
前端MAX_FILE_SIZE设置
MAX_FILE_SIZE 隐藏字段(单位为字节)必须放在文件输入字段之前,其值为接收文件的最大值。这是对浏览器的一个建议,PHP 也会检查此项。
当然浏览器端可以简单绕过此设置,因此不要指望用此特性来阻挡大文件。
实际上,PHP 设置中的上传文件最大值是不会失效的。但是最好还是在表单中加上此项目,因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。
所以我们建议前端要设置MAX_FILE_SIZE,在后端也要配置允许接收的文件最大值,甚至在逻辑代码中需要检查。
上传文件常见错误信息
PHP: POST上传文件 - 错误信息说明 - Manual
$_FILES[‘userfile’][‘error’] 值 为0 时,表示无错误,文件上传成功。
上传文件失败的常见原因
- 前端MAX_FILE_SIZE 设置的值,不能大于 ini 设置中 upload_max_filesize 选项设置的值。其默认值为 2M。
- 如果 post_max_size 设置的值太小,则较大的文件会无法被上传。因此,请保证 post_max_size 的值足够的大。
- 如果 max_execution_time 设置的值太小,脚本运行的时间可能会超过该设置。因此,也请保证 max_execution_time 足够的大。
- 如果内存限制设置被激活,可能需要将 memory_limit 设置的更大些,请确认 memory_limit 的设置足够的大。