PHP文件上传和下载函数的实例演示
文件上传和下载是Web开发中常见的功能之一。在PHP中,可以使用文件上传函数move_uploaded_file()来实现文件上传,使用文件下载函数readfile()来实现文件下载。
首先,我们来看一下文件上传的实例演示:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
$name = $file['name']; // 获取文件名
$temp = $file['tmp_name']; // 获取上传后的临时文件路径
// 将文件移动到指定目录
move_uploaded_file($temp, 'uploads/' . $name);
echo '文件上传成功!';
}
?>
在上述代码中,首先我们创建了一个表单,并将其action属性设置为upload.php,指定了文件上传的处理文件。表单中的enctype属性必须设置为multipart/form-data,以支持文件上传。
当用户点击提交按钮时,表单数据将会被发送到upload.php文件进行处理。在upload.php文件中,首先使用isset()函数判断是否存在$_FILES数组中的file元素。如果存在,则表示用户已经选择了要上传的文件。
我们可以通过$_FILES['file']来获取上传文件的信息。name属性表示上传的文件名,tmp_name属性表示上传后的临时文件路径。
然后,我们使用move_uploaded_file()函数将上传的文件移动到指定的目录中。move_uploaded_file()函数有两个参数, 个参数是上传后的临时文件路径,第二个参数是文件移动的目标路径。
最后,我们输出一个提示信息表示文件上传成功。
接下来,我们来看一下文件下载的实例演示:
<?php
$file = 'downloads/file.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, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
// 读取文件内容并输出给浏览器
readfile($file);
} else {
echo '文件不存在!';
}
?>
在上述代码中,我们首先指定了要下载的文件路径。然后,使用file_exists()函数判断文件是否存在。
如果文件存在,我们需要设置一些响应头信息,以告诉浏览器文件的类型、大小和下载方式。这些响应头信息可以通过header()函数来设置。
最后,我们使用readfile()函数读取文件内容,并输出给浏览器进行下载。
如果文件不存在,则输出一个提示信息表示文件不存在。
综上所述,上述代码演示了PHP文件上传和下载函数的用法。通过这些函数,我们可以方便地实现文件上传和下载的功能。
