PHP 面试题 目录

PHP 中 $_FILES 数组的结构是什么?

推荐答案

本题详细解读

1. $_FILES 数组的结构

$_FILES 是一个全局数组,用于存储通过 HTTP POST 方法上传的文件信息。它是一个二维数组,其中每个上传的文件都会有一个对应的键值对。

2. $_FILES 数组的键值

  • name: 上传文件的原始名称,即客户端文件系统中的文件名。
  • type: 上传文件的 MIME 类型,例如 image/jpegtext/plain
  • tmp_name: 上传文件在服务器上的临时文件名。文件上传后,PHP 会将其存储在临时目录中,直到你将其移动到其他位置。
  • error: 上传文件时产生的错误代码。常见的错误代码包括:
    • UPLOAD_ERR_OK (0): 没有错误,文件上传成功。
    • UPLOAD_ERR_INI_SIZE (1): 上传的文件超过了 php.iniupload_max_filesize 指令限制的大小。
    • UPLOAD_ERR_FORM_SIZE (2): 上传的文件超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
    • UPLOAD_ERR_PARTIAL (3): 文件只有部分被上传。
    • UPLOAD_ERR_NO_FILE (4): 没有文件被上传。
    • UPLOAD_ERR_NO_TMP_DIR (6): 找不到临时文件夹。
    • UPLOAD_ERR_CANT_WRITE (7): 文件写入失败。
    • UPLOAD_ERR_EXTENSION (8): 一个 PHP 扩展停止了文件上传。
  • size: 上传文件的大小,单位为字节。

3. 示例

假设有一个文件上传表单字段名为 userfile,上传了一个名为 example.jpg 的文件,那么 $_FILES 数组可能如下所示:

4. 注意事项

  • 在处理上传文件时,务必检查 $_FILES['file']['error'] 的值,以确保文件上传成功。
  • 使用 move_uploaded_file() 函数将临时文件移动到目标位置,以确保文件的安全性。
纠错
反馈