📅  最后修改于: 2023-12-03 15:38:01.818000             🧑  作者: Mango
在 Web 开发中,我们经常需要上传文件。HTTP POST 是上传文件的常用方式之一。本文将介绍如何使用 HTTP POST 选择和上传带有 HTML 和 PHP 的多个文件。
在 HTML 中,我们可以通过表单来上传文件。为了上传多个文件,我们需要添加 multiple
属性。下面是一个上传多个文件的 HTML 表单示例:
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input type="submit" value="上传">
</form>
action
属性指定了表单提交的 URL。method
属性指定了表单提交的 HTTP 方法,通常为 POST。enctype
属性指定了表单中包含文件上传的数据编码方式。对于文件上传,需要使用 multipart/form-data
。input
标签中的 type
属性为 file
,表示上传文件。name
属性指定了上传文件的参数名,后端接口需要根据该参数名获取文件数据。multiple
属性表示可以选择多个文件。前端上传表单提交到后台时,服务器端需要接收上传文件的数据,并将文件保存到对应的位置。下面是一个 PHP 后端接口示例:
$upload_dir = './uploads/';
if (!file_exists($upload_dir)) {
mkdir($upload_dir);
}
if (!empty($_FILES['files']['name'][0])) {
foreach ($_FILES['files']['error'] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES['files']['tmp_name'][$key];
$name = basename($_FILES['files']['name'][$key]);
move_uploaded_file($tmp_name, "{$upload_dir}/{$name}");
}
}
}
$upload_dir
变量指定了上传文件保存的目录。file_exists
函数判断该目录是否存在,如果不存在则创建目录。$_FILES
数组中的 files
键对应了表单中文件上传的参数名。name
键对应了上传的文件名,tmp_name
键对应了上传的临时文件的路径。move_uploaded_file
函数将上传的文件从临时文件夹移动到指定目录。以上就是使用 HTTP POST 选择和上传带有 HTML 和 PHP 的多个文件的方法。通过 HTML 表单和 PHP 后端接口,我们可以方便地上传任意类型和数量的文件到服务器端。