Code前端首页关于Code前端联系我们

PHP文件上传原理

terry 2年前 (2023-09-29) 阅读数 62 #PHP
文章标签 PHP

1.上传文件的概念

上传文件是指将文件从本地主机上传到远程服务器。本地主机需要向远程服务器发送一些数据。远程服务器接收到数据后,可以分析并保存数据。 PHP 中的文件上传通常通过上传表单来完成。

2。创建上传表单

PHP上传表单由HTML和PHP语言组成。 HTML用于定义表单的结构,PHP用于处理表单提交后的数据。上传表单通常包含以下部分:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <label for="fileUpload">选择文件:</label>
    <input type="file" name="fileUpload" id="fileUpload">
    <input type="submit" value="上传">
</form>

表格相关组成部分解释如下:

  • action属性:提交数据表后数据转发到的目标链接。这是处理上传的 PHP 文件
  • method属性:表单提交的HTTP方法,大量数据上传的POST方法
  • enctype属性:表单的编码方式必须设置为multipart/form data
  • 标签元素:向上传文件表单添加描述性文本
  • 输入元素:type属性file,name属性fileUpload,id属性fileUpload,用于选择上传的文件
  • 提交元素:提交表单按钮

3。服务器端文件处理

上传的文件会被服务器暂时保存在临时目录中。使用 glob() 函数获取目录中的所有文件名:

if ($_FILES['fileUpload']['error'] == UPLOAD_ERR_OK) {
    $tmp_name = $_FILES['fileUpload']['tmp_name'];
    $path_parts = pathinfo($_FILES['fileUpload']['name']);
    $file_ext = $path_parts['extension'];
    $new_name = uniqid() . '.' . $file_ext;

    move_uploaded_file($tmp_name, "uploads/{$new_name}");
}

代码解释:

  • $_FILES['fileUpload']['error']:文件上传成功时的错误代码,变量:UPLOAD_ERR_OK
  • $_FILES['fileUpload']['tmp_name']:服务器端临时文件目录
  • pathinfo()函数:获取上传文件的数据,如文件名、类型、大小等,并存储在$path_parts变量中
  • uniqid()函数:生成唯一的文件名
  • move_uploaded_file()函数:将上传的文件移动到指定目录

4。检查文件类型和大小

上传文件时,平时应检查文件的类型和大小,以免上传非法或过大的文件而浪费服务器资源。 PHP 提供了一些函数来检查文件类型和大小。如下:

$allowed_types = ['image/jpeg', 'image/png'];
$max_size = 1024; // 1MB

if (in_array($_FILES['fileUpload']['type'], $allowed_types) && $_FILES['fileUpload']['size'] 

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门