下面是详细讲解 PHP 处理单文件、多文件上传的攻略。
单文件上传
单文件上传是指上传一个文件,下面是单文件上传的步骤:
- 在 HTML 表单中添加
enctype="multipart/form-data"
属性,这个属性是必须的,否则上传文件的表单将不起作用。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file"><br>
<input type="submit" value="上传文件">
</form>
- 在 PHP 中获取上传的文件,可以使用
$_FILES
变量来获取文件信息。$_FILES
是一个关联数组,包括了上传文件的信息。下面是一个简单的例子:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
echo "文件上传成功:" . $target_file;
?>
在上面的例子中,我们使用 $_FILES
变量获取上传的文件信息。$_FILES["file"]["name"]
表示文件名,$_FILES["file"]["tmp_name"]
表示上传的临时文件名,basename()
函数用于获取文件名,move_uploaded_file()
函数用于将文件移动到指定目录下。
多文件上传
多文件上传允许上传多个文件,以下是多文件上传的步骤:
- 修改 HTML 表单,给文件选择框添加
multiple
属性,表示允许选择多个文件。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple><br>
<input type="submit" value="上传文件">
</form>
- 在 PHP 中获取上传的多个文件,使用
foreach
循环遍历$_FILES
数组。
<?php
$target_dir = "uploads/";
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, "$target_dir/$name");
echo "文件上传成功:" . "$target_dir/$name<br>";
}
}
?>
在上面的例子中,我们使用了 foreach
循环遍历 $_FILES
数组,$key
表示文件的索引号,$error
表示上传文件时的错误码,UPLOAD_ERR_OK
表示没有错误。$_FILES["files"]["name"][$key]
表示第 $key
个文件的名字,$_FILES["files"]["tmp_name"][$key]
表示第 $key
个文件的临时文件名,move_uploaded_file()
函数用于将文件移动到指定目录下。
以上就是 PHP 处理单文件、多文件上传的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php处理单文件、多文件上传代码分享 - Python技术站