📜  如何使用 HTTP POST 选择和上传带有 HTML 和PHP 的多个文件?(1)

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

如何使用 HTTP POST 选择和上传带有 HTML 和PHP 的多个文件?

概述

HTTP POST 是一种向服务器发送数据的方式,可以用于上传文件。如果需要上传带有 HTML 和 PHP 的多个文件,则需要使用一些特定的工具和技巧。本文将介绍如何使用 HTTP POST 选择和上传带有 HTML 和 PHP 的多个文件。

步骤
第一步:选择多个文件

首先,需要在客户端选择多个文件。可以使用 <input type="file" multiple> 标签来实现这个功能。这个标签可以让用户选择多个文件,然后将这些文件传递给服务器。

以下是标准 HTML 代码片段,用于创建一个选择多个文件的表单:

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="files[]" multiple>
  <input type="submit" value="Upload">
</form>

注意,enctype 属性必须设置为 multipart/form-data,以便让浏览器知道该表单包含二进制数据。

第二步:上传文件

一旦用户选择了多个文件,就需要将这些文件上传到服务器。可以使用 PHP 的 $_FILES 变量来处理上传的文件。

以下是 PHP 代码片段,用于处理上传的文件:

$upload_dir = "uploads/";
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
  $file_name = $_FILES['files']['name'][$key];
  $file_size = $_FILES['files']['size'][$key];
  $file_tmp = $_FILES['files']['tmp_name'][$key];
  $file_ext=strtolower(end(explode('.',$_FILES['files']['name'][$key])));
  
  $extensions = array("html","php");
  
  if(in_array($file_ext,$extensions)){
    if($file_size > 2097152){
      $errors[]='File size must be less than 2 MB';
    } else {
      move_uploaded_file($file_tmp, $upload_dir.$file_name);
      echo 'File uploaded successfully';
    }
  }else{
    $errors[]='Invalid file extension';
  }
}

if (isset($errors)) {
  foreach ($errors as $error) {
    echo $error;
  }
}

在上面的示例中,上传的文件将被保存到 uploads/ 目录中。如果上传的文件是HTML或PHP文件,则文件大小必须小于2MB,否则将返回一个错误消息。

结论

本文介绍了如何使用 HTTP POST 选择和上传带有 HTML 和 PHP 的多个文件。使用 <input type="file" multiple> 标签可以让用户选择多个文件。使用 PHP 的 $_FILES 变量和 move_uploaded_file() 函数可以处理上传的文件。