`

简单的文件上传、下载、计数、删除、重命名

    博客分类:
  • php
阅读更多
1.fileUpload.php

<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\""?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
<style type="text/css">
td {
	margin: 0;
}
</style>
<script type="text/javascript">
function submit(){
	obj=document.form1.submit();
	return obj;
}
function conf(text){
	var obj=document.getElementsByName("delf[]");
	for ( var i = 0; i < obj.length; i++) {
		if (obj[i].checked==true) {
			if(confirm("Are you sure to delete this one?")){
				return true;
				}else {
					return false;
				}
			
		}else {
			alert("Please select one at least.");
			break;
		}
	}
	return true;
}
</script>
</head>
<body>
<form name="form1" method="post" enctype="multipart/form-data"
	action="<?php
	echo $_SERVER ["PHP_SELF"]?>">
<table cellpadding="0" cellspacing="0" border="0"
	bordercolordark="#ffffff" bordercolorlight="#0000ff">
	<tr>
		<td><label>FileUpload : </label></td>
		<td><input type="file" name="file"></input></td>
		<td><input type="submit" name="submit" value="Submit"></input></td>
	</tr>
</table>
</form>
</body>
</html>
<?php
//文件上传并列表显示
$file = $_FILES ["file"];
date_default_timezone_set ( 'PRC' ); //设置时间为北京时间
//if (! $file && $file ["name"] == "") {
//	
//} else {
	$filepath = "upload/";
	$name = $filepath . $file ["name"];
	while ( file_exists ( $name ) ) {
		$temp = explode ( ".", $name );
		$name = $temp [0] . "_" . date ( "YmdHis" ) . "." . $temp [1];
	}
	$move_name = move_uploaded_file ( $file ["tmp_name"], $name );
	if ($move_name) {
		$content = $name . " || " . $file ["type"] . " || " . $file ["size"] . "\n";
		file_put_contents ( $filepath . "record.dat", $content, FILE_APPEND );
	}
	unset ( $file);
//}
$file_record = $filepath . "record.dat";
$file_array = file ( $file_record );
$file_num = count ( $file_array );
echo "Already exist " . $file_num . " files.\n";
if ($file_num > 0) {
	echo "<table cellpadding=\"1\" cellspacing=\"1\" border=\"1\" bordercolordark=\"#ffffff\" bordercolorlight=\"#0000ff\">";
	echo "<form method=\"post\" action=\"fileUpload_del.php\" onsubmit=\"conf(this)\">
	<tr>
		<td>Options</td>
		<td>File Name</td>
		<td>File Type</td>
		<td>File Size</td>
		<td>Rename</td>
		<td>DownLoad</td>
		<td>Delete</td>
	</tr>";
	for($i = 0; $i < $file_num; $i ++) {
		$line_content = $file_array [$i];
		$arr_content = explode ( " || ", $line_content );
		echo "<tr>
		<td><input type=\"checkbox\" name=\"delf[]\" value=\"".($i+1)."\" /></td>
		<td>$arr_content[0]</td>
		<td>$arr_content[1]</td>
		<td>$arr_content[2]</td>
		<td><a href='fileUpload_del.php?re_id=".($i+1)."&name=$arr_content[0]'>Rename</a></td>
		<td><a href='fileUpload_download.php?id=".($i+1)."&name=$arr_content[0]'>DownLoad</a></td>
		<td><a href='fileUpload_del.php?id=".($i+1)."&name=$arr_content[0]'>Delete</a></td>
	</tr>";
	}
	echo "<tr><td colspan='7'><input type='submit' name='delbtn' value='Delete Selection' ></input></td>	</tr>";
	echo "</form></table>";
}
?>



2.fileUpload_del.php
<?php
//多文件一起删除
if (isset ( $_POST ["delf"] )) {
	$delf_arr = $_POST ["delf"];
	$num = count ( $delf_arr );
	$all = file_get_contents ( "upload/record.dat" );
	$fp = fopen ( "upload/record.dat", "r" );
	for($i = 0; $i < $num; $i ++) {
		rewind ( $fp );
		$id = $delf_arr [$i];
		$j = 0;
		while ( $j < $id ) {
			$str1 = fgets ( $fp );
			$j ++;
		}
		$all = str_replace ( $str1, "", $all );
		$temp = explode ( " || ", $str1 );
		unlink ( $temp [0] );
	}
	file_put_contents ( "upload/record.dat", $all );
	echo "Delete success.";
	echo "<meta http-equiv='refresh' content='2;url=fileUpload.php'>\n";
	echo "Had delect all files.\n Two minutes back";
} else if (isset ( $_GET ["id"] )) {
	//单文件删除
	$all = file_get_contents ( "upload/record.dat" );
	$fp = fopen ( "upload/record.dat",  "r" );
	$id = $_GET ["id"];
	$fp_id = substr ( strstr ( "$fp", "#", false ), 1 );
	$result = file ( "upload/record.dat" );
	for($i = 1; $i <= count ( $result ); $i ++) {
		if ($id == $i) {
			$all = str_replace ( $result[$i-1], "", $all );
			$temp = explode ( " || ", $result[$i-1] );
			unlink ( $temp [0] );
		}
	}
	file_put_contents ( "upload/record.dat", $all );
	echo "Delete success.";
	echo "<meta http-equiv='refresh' content='2;url=fileUpload.php'>\n";
	echo "Had delect all files.\n Two minutes back";
} elseif (isset ( $_GET ["re_id"] )) {
	//重命名,显示输入框
	$all = file_get_contents ( "upload/record.dat" );
	$fp = fopen ( "upload/record.dat", "r" );
	$id = $_GET ["re_id"];
	$_SESSION["new_id"]=$id;
	$fp_id = substr ( strstr ( "$fp", "#", false ), 1 );
	$result = file ( "upload/record.dat" );
	for($i = 1; $i <= count ( $result ); $i ++) {
		if ($id == $i) {
//			$str1 = fgets ( $fp );
			//			$all = str_replace ( $str1, "", $all );
			$temp = explode ( " || ", $result[$i-1] );
			echo "<table cellpadding=\"1\" cellspacing=\"1\" border=\"1\" bordercolordark=\"#ffffff\" bordercolorlight=\"#0000ff\">";
			echo "<form method=\"get\" action=\"fileUpload_del.php?new_id=$id\" >
	<tr>
		<td>Old Name : </td>
		<td>$temp[0]<input type='hidden' name='old_name' value='$temp[0]' ></input></td>
	</tr>
	<tr>
		<td>New Name : </td>
		<td><input type='hidden' name='new_id' value='$id' ></input>
		<input type='text' name='new_name' value='' ></input></td>
	</tr>";
			echo "<tr><td colspan='2'><input type='submit' name='delbtn' value='Rename' ></input></td>	</tr>";
			echo "</form></table>";
//			unlink ( $temp [0] );
		}
	}
}elseif (isset ( $_GET ["new_id"] )) {
	//重命名操作成功
	$all = file_get_contents ( "upload/record.dat" );
	$fp = fopen ( "upload/record.dat", "r" );
	$id = $_GET ["new_id"];
	$old_name=$_GET["old_name"];
	$new_name=$_GET["new_name"];
	$fp_id = substr ( strstr ( "$fp", "#", false ), 1 );
	$result = file ( "upload/record.dat" );
	if (!isset($new_name)) {
		echo "The new_name is empty.";
	}else {
		if (rename($old_name, $new_name)) {
			echo $old_name."/".$new_name;
	for($i = 1; $i <= count ( $result ); $i ++) {
		if ($id == $i) {
//			$str1 = fgets ( $fp );
			$temp = explode ( " || ", $result[$i-1] );
			$all = str_replace ( $temp[0], $new_name, $all );
//			unlink ( $temp [0] );
		}
		
	}
		}
	}
	file_put_contents ( "upload/record.dat", $all );
	echo "Rename success.";
	echo "<meta http-equiv='refresh' content='2;url=fileUpload.php'>\n";
	echo "Had delect all files.\n Two minutes back";
}



3.fileUpload_download.php
<?php
//文件下载
$name=explode("/", $_GET["name"]);
$filename = "upload/" . $name[1];
header ( "Content-Type: application/force-download" );
header ( "Content-Disposition: attachment; filename=" . basename ( $filename ) );

header ( 'Content-Description: File Transfer' );
header ( 'Content-Type: application/octet-stream' );

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 ( $filename ) );
ob_clean ();
flush ();
readfile ( $filename );
0
1
分享到:
评论

相关推荐

    基于SSM的网盘系统-毕业设计

    文件上传、下载、重命名、移动、删除 文件夹新建、重命名、移动、删除 TODO 文件版本控制和文件分享 Feature 系统功能特性 使用分片上传 前端会将大文件进行分片(文件默认分片大小为10MB), 并计算分片的hash值,并和...

    HDFS分布式文件系统

    - **上传文件**:使用`hdfs dfs -put`命令,例如`hdfs dfs -put bigdata.txt /user/text01`,将本地的`bigdata.txt`文件上传到HDFS的`/user/text01`目录。 - **下载文件**:通过`hdfs dfs -copyToLocal`命令,例如...

    Hadoop集群部署及测试实验(二).docx

    在HDFS中创建一个名为 `input` 的目录,并将样本文件上传到该目录。 - **编写MapReduce程序**: 使用Java API编写一个简单的WordCount程序,实现Map和Reduce函数,处理输入文件,统计每个单词出现的次数。 - **...

    Linux常用命令全集

    `ftp [选项] 主机`,支持登录和文件上传下载。 - **uuto**、**uupick**、**uucp**:用于早期的文件传输和新闻组文章的发送与接收。 - **uucico**:用于控制uucp的工作流程。 - **tftp**:简单文件传输协议,主要用于...

    hadoop-shell(第四章)-带书签高清pdf文字版

    - `put`命令用于将本地文件系统中的文件上传到HDFS,`get`命令则用于将HDFS中的文件下载回本地。 - `copyFromLocal`和`copyToLocal`是另外两个用于数据迁移的命令,它们与`put`和`get`功能相同,但语义上更明确。 ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供...

    Hadoop应用开发-实验指导书.doc

    4. **测试Hadoop功能**:上传文件到HDFS,运行简单的MapReduce作业。 #### 练习题 - 在伪分布式模式下,如何监控HDFS的状态? - 如何使用YARN提交一个MapReduce任务? ### Hadoop完全分布式集群模式 #### 实验...

    unix command line notes (2010)

    #### 文件与目录的创建、重命名与删除 - **Renaming and moving items(重命名与移动项)**: 使用`mv`命令来重命名或移动文件和目录。 - **Copying files(复制文件)**: 如何使用`cp`命令来复制文件。 - **...

    Joomla! 1.5 Development Cookbook.pdf

    第十二章“文件和目录”讲解了检查文件和目录是否存在,读取文件,删除文件或目录,复制、移动和重命名文件,创建目录,上传文件到Joomla,以及读取目录结构和修改文件和目录权限的方法。 这本书通过具体的实例和...

    2021-2022计算机二级等级考试试题及答案No.13335.docx

    - **知识点概述**:FTP(File Transfer Protocol)是用于文件传输的协议,它允许用户在网络上上传和下载文件。题目中的描述“Internet 中的 FTP 是用于文件传输的协议”是正确的。 ### 16. 计算机语言分类 - **...

    办公软件高效应用-Excel2010电子表格软件的应用.pptx

    - **重命名工作表**:双击工作表标签或右键菜单中的“重命名”命令更改名称。 通过上述知识点的学习,我们可以掌握Excel 2010的基础使用方法,包括如何启动和退出程序、理解其界面布局、基本数据输入及编辑技巧、...

    Excel使用技巧大全

    20. **巧妙输入位数较多的数字**:可以通过在数字前加上单引号`'`来避免Excel自动转换大数字为科学计数法。 21. **将WPS/Word表格转换为Excel工作表**:可以通过复制WPS/Word中的表格数据,然后粘贴到Excel中。 22...

Global site tag (gtag.js) - Google Analytics