下面是关于“PHP多文件上传下载示例分享”的详细攻略,包括两个示例说明。
1. 多文件上传示例
1.1 HTML页面
首先,我们需要在HTML页面中添加一个文件上传表单,代码如下:
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file[]" multiple>
<input type="submit" value="Upload">
</form>
这里我们设置multiple
属性可以让用户选择多个文件。
1.2 PHP代码
在后台PHP代码中,我们需要根据表单提交的文件进行处理,代码如下:
<?php
if(isset($_FILES['file'])){
$errors= array();
$file_name_array = array();
$file_size_array = array();
$file_tmp_array = array();
$file_type_array = array();
foreach($_FILES['file']['tmp_name'] as $key => $tmp_name ){
$file_name = $_FILES['file']['name'][$key];
$file_size = $_FILES['file']['size'][$key];
$file_tmp = $_FILES['file']['tmp_name'][$key];
$file_type = $_FILES['file']['type'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$file_name_array[] = $file_name;
$file_size_array[] = $file_size;
$file_tmp_array[] = $file_tmp;
$file_type_array[] = $file_type;
}
if(empty($errors)==true){
$upload_dir = 'uploads/';
foreach($file_name_array as $k => $v){
move_uploaded_file($file_tmp_array[$k], $upload_dir.$v);
}
echo "Upload Success";
}else{
print_r($errors);
}
}
?>
这段PHP代码主要是将每个文件进行遍历、检查、上传和保存。
1.3 示例说明
用户在页面上选择多个文件后,点击“上传”按钮,表单会被提交给后端PHP文件。PHP会对多个文件进行遍历和检查,如果文件大小符合要求,则会将文件上传到指定的文件夹。上传后,PHP会返回“上传成功”的提示。
2. 多文件下载示例
2.1 HTML页面
在HTML页面中,我们需要列出所有要下载的文件,如果有多个文件,可以使用表格的形式,代码如下:
<table>
<tr>
<th>File Name</th>
<th>Download</th>
</tr>
<tr>
<td>file1.pdf</td>
<td><a href="download.php?file=file1.pdf">Download</a></td>
</tr>
<tr>
<td>file2.png</td>
<td><a href="download.php?file=file2.png">Download</a></td>
</tr>
</table>
这里我们设置了一个download.php
文件作为下载处理的入口文件,通过URL参数传递要下载的文件名。
2.2 PHP代码
在download.php
文件中,我们需要根据传入的文件名进行下载处理,代码如下:
<?php
if(isset($_GET['file'])){
$file= $_GET['file'];
if(file_exists($file)){
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
}
?>
这段PHP代码主要是发送HTTP头,并使用readfile()
函数输出文件内容。
2.3 示例说明
用户在页面上点击需要下载的文件链接,会跳转到download.php
文件进行处理,该PHP文件会对传入的文件进行检测,如果文件存在,则使用HTTP头将文件内容输出到页面供用户下载。如果文件不存在,则会返回HTTP响应码404。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php多文件上传下载示例分享 - Python技术站