在PHP中,可以使用HTML的input元素和属性multiple来实现多文件上传控件。以下是一个简单的示例代码:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input type="submit" value="上传">
</form>
在上述代码中,<input type="file" name="files[]" multiple>中的name="files[]"表示将上传的文件以数组的形式传递给服务器端的脚本。用户可以通过按住Ctrl键(在Windows系统中)或Command键(在Mac系统中)来选择多个文件。
接下来,创建一个名为upload.php的PHP脚本来处理上传的文件:
<?php
if(isset($_FILES['files'])){
$errors = array();
$uploadedFiles = array();
$extension = array("jpeg","jpg","png","gif");
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $_FILES['files']['name'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['type'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
if(in_array($file_ext,$extension) === false){
$errors[] = "只允许上传图片文件";
}
if($file_size > 2097152){
$errors[] = '文件大小超过限制';
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"uploads/".$file_name);
$uploadedFiles[] = $file_name;
}else{
print_r($errors);
}
}
if(empty($uploadedFiles)==false){
echo count($uploadedFiles)." 文件上传成功!\n";
echo "文件列表:\n";
foreach($uploadedFiles as $file){
echo $file."\n";
}
}
}
?>
在上述代码中,首先检查是否有文件被上传,然后遍历上传的每个文件。对于每个文件,检查文件的类型和大小是否满足要求。如果满足要求,则将文件移动到指定的目录(在本例中是uploads/目录),并将文件名存储在$uploadedFiles数组中。如果有任何错误发生,则将错误信息打印出来。
最后,如果有文件上传成功,则输出上传的文件数量和文件列表。
请注意,为了使上传文件的大小限制生效,需要在php.ini文件中修改以下配置项:
upload_max_filesize = 2M
post_max_size = 8M
上述代码仅提供了一个简单的示例,你可以根据自己的需求进行修改和扩展。
上一篇:php 0e ctf
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站