📜  如何在PHP中访问与文件上传相关的错误代码?(1)

📅  最后修改于: 2023-12-03 15:38:35.271000             🧑  作者: Mango

如何在PHP中访问与文件上传相关的错误代码?

在PHP中,与文件上传相关的错误代码可以通过预定义常量来访问。以下是预定义常量和相应的错误代码:

  • UPLOAD_ERR_OK:表示没有错误发生,文件上传成功。
  • UPLOAD_ERR_INI_SIZE:表示上传的文件大小超过了php.ini中upload_max_filesize选项的值。
  • UPLOAD_ERR_FORM_SIZE:表示上传的文件大小超过了HTML表单中MAX_FILE_SIZE选项指定的值。
  • UPLOAD_ERR_PARTIAL:表示上传的文件只有部分被上传。
  • UPLOAD_ERR_NO_FILE:表示没有文件被上传。
  • UPLOAD_ERR_NO_TMP_DIR:表示找不到临时文件夹。
  • UPLOAD_ERR_CANT_WRITE:表示文件写入失败。
  • UPLOAD_ERR_EXTENSION:表示一个PHP扩展阻止了文件上传。

要访问这些预定义常量,可以使用PHP函数$_FILES['file']['error'],其中file是文件上传表单中文件输入的名称。

例如:

if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
  // 文件上传成功
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_INI_SIZE) {
  // 上传的文件大小超过了php.ini中upload_max_filesize选项的值
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_FORM_SIZE) {
  // 上传的文件大小超过了HTML表单中MAX_FILE_SIZE选项指定的值
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_PARTIAL) {
  // 上传的文件只有部分被上传
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_NO_FILE) {
  // 没有文件被上传
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_NO_TMP_DIR) {
  // 找不到临时文件夹
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_CANT_WRITE) {
  // 文件写入失败
} elseif ($_FILES['file']['error'] === UPLOAD_ERR_EXTENSION) {
  // 一个PHP扩展阻止了文件上传
}

建议在编写文件上传代码时,对上传的文件类型和大小进行验证,以确保上传的文件符合要求。