PHP 文件上传

2025年04月17日 | 阅读 4 分钟

PHP 文件上传功能允许您上传二进制文件和文本文件。此外,您还可以通过 PHP 身份验证和文件操作函数完全控制要上传的文件。您只需几行代码即可上传单个文件或多个文件。

在 PHP 中,我们可以轻松地将文件上传到服务器;但是,这有点危险,所以在启用文件上传时要小心。

PHP 文件上传步骤

  1. 一个 网页 显示一个带有上传表单的表单,表单以文本字段开头,并提供一个浏览按钮和一个提交按钮供用户使用。
  2. 使用浏览按钮后,用户可以选择他们的文件,这会在文本字段中显示选定的路径。
  3. 用户提交文件,该文件将被传输到一个临时服务器目录。
  4. PHP 的脚本函数检查文件是否已到达目标位置。
  5. 脚本将文件从临时存储成功传输到永久文件目录。
  6. 文件上传完成后,将显示一条成功消息。

PHP $_FILES 超全局变量

PHP 超全局变量 $_FILES 包含文件的所有信息。通过 $_FILES 全局 变量,我们可以获取文件名、文件类型、文件大小、临时文件名以及与文件相关的错误。

语法

在这里,我们假设文件名是 filename

语法

返回文件名。

语法

返回文件的 MIME 类型。

语法

返回文件大小(以字节为单位)。

语法

返回存储在服务器上的文件的临时文件名。

语法

返回与此文件相关的错误代码。

move_uploaded_file() 函数

move_uploaded_file() 函数将上传的文件移动到新位置。move_uploaded_file() 函数内部检查文件是否是通过 POST 请求上传的。如果文件是通过 POST 请求上传的,它就会移动该文件。

语法

参数

$filename: 系统分配给上传文件的临时名称是 '$filename'。它来自 $_FILES['filename']['tmp_name']。

$destination: 此参数指定上传文件将存储的带有文件名的文件夹。

当文件移动成功时,函数返回布尔值 True;否则,它将值设置为 False。与文件上传相关的错误消息将显示在 $_FILES['filename']['error'] 中。

如何配置 PHP 文件上传设置?

PHP 文件上传操作要求在进行之前正确激活“php.ini”文件的配置设置。要使 file_uploads 功能正常工作,用户必须删除该设置前的分号,然后将其值设置为 on。应该设置一个定义的 upload_tmp_dir 值,例如“C:\xampp\tmp”,以确定上传文件的临时存储区域,upload_max_filesize 需要设置为 40M,max_file_uploads 必须配置为 20。

只有当临时目录和上传目标文件夹都配置了写入权限时,文件上传过程才能成功。当任何文件夹的权限设置为只读时,文件上传过程将失败。目录权限与 php.ini 文件中的适当设置结合使用,可以实现文件上传的顺畅处理。

创建上传表单

文件:uploadform.html

创建上传脚本

文件:uploader.php

示例

输出

File uploaded successfully!

说明

用户可以通过此页面上的 HTML 表单选择他们的文件。uploader.php 脚本是管理文件上传功能的 PHP 编程代码。该脚本将 uploads/ 指定为其目标文件夹,然后移动临时文件。脚本显示成功消息。

接受特定文件格式的上传

这是一个仅接受特定格式文件的 PHP 代码示例。

示例

立即执行

输出

Error: Only JPG, JPEG, PNG, and GIF files are allowed.

说明

该脚本允许用户仅接受 JPG、JPEG、PNG 和 GIF 图像格式的文件。当用户尝试上传不支持的文件类型时,脚本会阻止文件上传并显示相应的错误警告。

处理 PHP 文件上传中的错误

在 PHP 中上传文件时会识别错误。我们可以借助示例更好地理解错误处理。

示例

立即执行

输出

Error Code: 4

说明

在上传开始之前,会在过程开始时执行错误检查。当检测到处理错误时,程序会显示相应的错误代码。此功能简化了上传调试过程。

结论

PHP 是一项重要功能,可让多个网站处理文件上传。通过这些规则,用户可以安全地插入文件。$_FILES 超全局变量以及 move_uploaded_file() 函数可以将文件安全地移动到其相应的位置。

开发人员可以通过执行类型检查、强制执行最大文件大小限制并将唯一的文件名分配给每个上传项来确保文件上传的安全性和操作有效性。


下一主题PHP 下载文件