用php实现文件上传和下载,如何利用php接受来自浏览器的上传文件,支持文本,图片或者其他二进制文件
时间: 2023-11-25 12:08:21 浏览: 43
可以使用PHP内置的文件上传功能来实现文件上传和下载。以下是一个简单的示例:
上传文件:
```php
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
<?php
if(isset($_FILES['file'])){
$filename = $_FILES['file']['name'];
$filepath = $_FILES['file']['tmp_name'];
move_uploaded_file($filepath, 'uploads/'.$filename);
}
?>
```
上面的代码中,我们创建了一个表单,用户可以选择要上传的文件。当用户点击“上传”按钮时,表单将被提交到一个名为“upload.php”的PHP脚本。在该脚本中,我们使用$_FILES全局变量来获取上传的文件信息。然后,我们将文件从临时位置移动到一个名为“uploads”的文件夹中。
下载文件:
```php
<?php
$file = 'uploads/example.txt';
if(file_exists($file)){
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: '.filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
```
上面的代码中,我们首先检查要下载的文件是否存在。如果存在,我们设置HTTP响应头,告诉浏览器将文件作为附件下载。我们还设置了文件类型和大小,并使用readfile函数将文件内容发送到浏览器。
需要注意的是,我们必须在所有其他输出之前调用ob_clean和flush函数,以确保没有其他内容被发送到浏览器。