用php表单实现文件上传和下载
时间: 2024-02-03 16:11:28 浏览: 117
实现文件上传和下载需要涉及到服务器端和客户端的交互,因此需要使用PHP来实现。下面是一个简单的示例代码,演示如何使用PHP实现文件上传和下载功能。
文件上传:
```php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])){
$file = $_FILES['file'];
if($file['error'] == 0){
$filename = $file['name'];
$tmp_name = $file['tmp_name'];
$path = './uploads/' . $filename;
move_uploaded_file($tmp_name, $path);
echo '上传成功!';
}else{
echo '上传失败!';
}
}
?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
</body>
</html>
```
代码说明:
1. 首先检查请求是否为POST请求,并且检查是否存在文件上传的参数`$_FILES['file']`。
2. 检查文件上传是否成功,如果成功则将文件保存到服务器指定目录下,否则提示上传失败。
3. 显示一个表单,用户可以选择要上传的文件。
文件下载:
```php
<?php
$file = './uploads/test.txt';
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;
}else{
echo '文件不存在!';
}
?>
```
代码说明:
1. 检查要下载的文件是否存在,如果不存在则提示文件不存在。
2. 设置HTTP响应头,告诉浏览器要下载文件,并指定文件名。
3. 将文件内容读取并输出到响应中,完成文件下载。
注意:在下载文件时,必须保证没有任何输出(包括HTML标签),否则会导致下载失败。如果需要在下载前进行一些处理,可以将处理好的内容保存到一个临时文件中,下载时直接读取该文件即可。
阅读全文