PHP文件下载

步骤01

创建download.php页面,用于显示uploadfile文件夹下的所有文件

步骤02

创建traverse()函数,用于根据用户输入的内容遍历文件
<!DOCTYPE html>
<html>
<head>
	<title>文件下载</title>
</head>
<body>
<?php
	function traverse($path='.'){
		$current_dir = opendir($path);
		echo "uploadfile文件夹下的文件是:</br>";
		while (($file = readdir($current_dir))!== false) {
			$sub_dir = $path.DIRECTORY_SEPARATOR.$file;
			if ($file == '.' || $file == '..') {
				continue;
			}
			elseif (is_dir($sub_dir)) {
				echo "Directory ".$file.":</br>";
				traverse($sub_dir);
			}
			else{
				echo "<a href=\"download1.php?action=download&&fname=$file\">$file</a></br>";
			}
		}
	}
	traverse("uploadfile");
?>
</body>
</html>

步骤03

提供下载文件的代码
<!DOCTYPE html>
<html>
<head>
	<title>文件下载</title>
</head>
<body>
<?php
	if (isset($_GET["action"])) {
		$file_name=trim($_GET["fname"]);
		$file_dir="uploadfile/";
		$fileurl=$file_dir.$fname;
		if (!file_exists($fileurl)) {
			echo "文件找不到!!";
			exit();
		}
		else{
			$file=fopen($fileurl, "r");
			Header("Content-type:application/octet-stream");
			Header("Accept-Ranges:bytes");
			Header("Accept-Length:".filesize($fileurl));
			Header("Content-Disposition:attachment;filename=".$file_name);
			echo fread($file, filesize($fileurl));
			fclose($file);
			exit();
		}

	}
?>
</body>
</html>
结果示范
PHP文件下载_第1张图片 PHP文件下载_第2张图片

你可能感兴趣的:(PHP文件下载)