PHP-文件上传下载

myindex.php:上传页面

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
	<form method="post" action="files_upload.php" enctype="multipart/form-data">
		<div>
			<input type="file" name="file[]">
		</div>
		<div>
			<input type="file" name="file[]">
		</div>
		<div>
			<input type="file" name="file[]">
		</div>
		<div>
			<input type="submit" value="上传">
		</div>
	</form>
</body>
</html>

files_upload.php:上传处理(上传到服务器上的文件转而保存到其他地方)

<?php
	echo "<pre>";
	print_r($_FILES);
	echo "</pre>";

	//获取文件个数
	$filenum = count($_FILES['file']['name']);
	// echo $filenum;

	for($i = 0; $i < $filenum; $i++) {
		//原路径
		$filetmp = $_FILES['file']['tmp_name'][$i];
		//放置路径
		$finalfile = "files/".$_FILES['file']['name'][$i];
		// print_r($finalfile);
		// echo "<br>";

		//转移
		move_uploaded_file($filetmp, $finalfile);
	}

	echo "<script>location = 'file_list.php'</script>";
?>


file_list.php:文件下载列表

<?php
	header('content-type:text/html;charset=utf-8');
	echo "<table width='1000' border='1'>";
	//遍历目录
	function listdir($dirname) {
		$ds = opendir($dirname);
		while($file = readdir($ds)) {
			$path = $dirname ."/" .$file;
			if($file != '.' && $file != '..') {
				if(is_dir($path)) {
					listdir($path);
				} else {
					echo '<tr>';
					echo "<td><img src='$path'></td>";
					echo "<td><a href='files_download.php?filename={$file}'>下载</a></td>";
					echo '</tr>';
				}
			}
		}
	}
	$dirname = 'files';
	listdir($dirname);
	echo "</table>";
?>

files_download.php:文件下载

<?php
	//文件名
	$file = $_GET['filename'];
	//文件路径含文件名
	$path = "files/".$file;
	//文件大小
	$filesize = filesize($path);

	//下载
	header("content-type:application/octet-stream");
	header("content-disposition:attachment;filename={$file}");
	header("content-length:{$filesize}");
	readfile($path);
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值