PHP上传和下载与删除doc、docx、ppt、pdf文件
2017-07-01 17:34
1871 查看
####################html代码###################################
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>上传</h1>
<form action="doc.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload"></input>
<input type="file" name="file"></input>
<input type="submit" value="提交"></input>
</form>
<h1>下载</h1>
<a href="doc.php?action=download&filepath=file/20170701-595700d535f09.doc">doc下载</a><br>
<a href="doc.php?action=download&filepath=file/20170701-595700f41e339.docx">docx下载</a><br>
<a href="doc.php?action=download&filepath=file/20170701-595751502f738.pdf">pdf下载</a><br>
<a href="doc.php?action=download&filepath=file/20170701-5957013400166.ppt">ppt下载</a><br>
</body>
</html>
######################PHP代码#############################
<?php
$action = $_REQUEST['action'];
switch ($action) {
case 'upload':
$file = $_FILES['file'];
$tmp_name = $file['tmp_name'];
$type = substr($file['name'], strrpos($file['name'],'.')+1);
$dir = "./file/";
if(!is_dir($dir)){
mkdir($dir);
}
$filename = date("Ymd").'-'.uniqid();
switch ($type) {
case 'pdf':
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.pdf')){
$filepath = "picdata/pic/file/$filename.pdf";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
case 'doc':
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.doc')){
$filepath = "picdata/pic/file/$filename.doc";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
case "docx":
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.docx')){
$filepath = "picdata/pic/file/$filename.docx";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
case "ppt":
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.ppt')){
$filepath = "picdata/pic/file/$filename.ppt";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
default:
echo "<script>alert('只能上传pdf、doc、docx、ppt格式的文件')</script>";
exit();
break;
}
break;
case 'download':
$filepath = $_REQUEST['filepath'];
$dir = "./file/";
$filename = substr($filepath, strrpos($filepath,'/')+1);//文件名称
$type = substr($filepath, strrpos($filepath,'.')+1);//文件后缀
switch ($type) {
case 'pdf':
if(file_exists($dir.$filename)){
//打开文件,获得句柄
$file = fopen($dir . $filename,"r");
header('Content-Type: application/force-download');
//返回的文件类型
Header("Content-type:application/pdf");
//按照字节大小返回
Header("Accept-Ranges: bytes");
//返回文件的大小
Header("Accept-Length: ".filesize($dir . $filename));
//这里对客户端的弹出对话框,对应的文件名
Header("Content-Disposition: attachment; filename=" .$filename);
//修改之前,一次性将数据传输给客户端
echo fread($file, filesize($dir.$filename));
//修改之后,一次只传输1024个字节的数据给客户端
//向客户端回送数据
$buffer=1024;
//判断文件是否读完
while (!feof($file)) {
//将文件读入内存
$file_data=fread($file,$buffer);
//每次向客户端回送1024个字节的数据
echo $file_data;
}
//关闭文件句柄
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
case 'doc':
if(file_exists($dir.$filename)){
$file = fopen($dir . $filename,"r"); // 打开文件 // 输入文件标签
header('Content-Type: application/force-download');
header('Content-Type:application/msword');
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($dir . $filename));
Header("Content-Disposition: attachment; filename=" .$filename); // 输出文件内容
echo fread($file, filesize($dir.$filename));
$buffer=1024;
while (!feof($file)) {
$file_data=fread($file,$buffer);
echo $file_data;
}
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
case 'docx':
if(file_exists($dir.$filename)){
$file = fopen($dir . $filename,"r"); // 打开文件 // 输入文件标签
header('Content-Type: application/force-download');
header('Content-Type:application/vnd.openxmlformats');
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($dir . $filename));
Header("Content-Disposition: attachment; filename=" .$filename); // 输出文件内容
echo fread($file, filesize($dir.$filename));
$buffer=1024;
while (!feof($file)) {
$file_data=fread($file,$buffer);
echo $file_data;
}
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
case 'ppt':
if(file_exists($dir.$filename)){
$file = fopen($dir . $filename,"r"); // 打开文件 // 输入文件标签
header('Content-Type: application/force-download');
header('Content-Type:application/vnd.ms-powerpoint');
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($dir . $filename));
Header("Content-Disposition: attachment; filename=" .$filename); // 输出文件内容
echo fread($file, filesize($dir.$filename));
$buffer=1024;
while (!feof($file)) {
$file_data=fread($file,$buffer);
echo $file_data;
}
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
}
break;
}
##########删除文件###############
$dh = opendir($dir);
while (($file = readdir($dh)) !== false){
if($file != '.' && $file != '..'){
if($file == $filename){
unlink($dir.$filename);
}
}
}
closedir($dh);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>上传</h1>
<form action="doc.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload"></input>
<input type="file" name="file"></input>
<input type="submit" value="提交"></input>
</form>
<h1>下载</h1>
<a href="doc.php?action=download&filepath=file/20170701-595700d535f09.doc">doc下载</a><br>
<a href="doc.php?action=download&filepath=file/20170701-595700f41e339.docx">docx下载</a><br>
<a href="doc.php?action=download&filepath=file/20170701-595751502f738.pdf">pdf下载</a><br>
<a href="doc.php?action=download&filepath=file/20170701-5957013400166.ppt">ppt下载</a><br>
</body>
</html>
######################PHP代码#############################
<?php
$action = $_REQUEST['action'];
switch ($action) {
case 'upload':
$file = $_FILES['file'];
$tmp_name = $file['tmp_name'];
$type = substr($file['name'], strrpos($file['name'],'.')+1);
$dir = "./file/";
if(!is_dir($dir)){
mkdir($dir);
}
$filename = date("Ymd").'-'.uniqid();
switch ($type) {
case 'pdf':
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.pdf')){
$filepath = "picdata/pic/file/$filename.pdf";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
case 'doc':
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.doc')){
$filepath = "picdata/pic/file/$filename.doc";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
case "docx":
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.docx')){
$filepath = "picdata/pic/file/$filename.docx";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
case "ppt":
if(move_uploaded_file($file['tmp_name'], $dir.$filename.'.ppt')){
$filepath = "picdata/pic/file/$filename.ppt";
echo "<script>alert('上传成功')</script>";
}else{
echo "<script>alert('上传失败,请重新上传')</script>";
exit();
}
break;
default:
echo "<script>alert('只能上传pdf、doc、docx、ppt格式的文件')</script>";
exit();
break;
}
break;
case 'download':
$filepath = $_REQUEST['filepath'];
$dir = "./file/";
$filename = substr($filepath, strrpos($filepath,'/')+1);//文件名称
$type = substr($filepath, strrpos($filepath,'.')+1);//文件后缀
switch ($type) {
case 'pdf':
if(file_exists($dir.$filename)){
//打开文件,获得句柄
$file = fopen($dir . $filename,"r");
header('Content-Type: application/force-download');
//返回的文件类型
Header("Content-type:application/pdf");
//按照字节大小返回
Header("Accept-Ranges: bytes");
//返回文件的大小
Header("Accept-Length: ".filesize($dir . $filename));
//这里对客户端的弹出对话框,对应的文件名
Header("Content-Disposition: attachment; filename=" .$filename);
//修改之前,一次性将数据传输给客户端
echo fread($file, filesize($dir.$filename));
//修改之后,一次只传输1024个字节的数据给客户端
//向客户端回送数据
$buffer=1024;
//判断文件是否读完
while (!feof($file)) {
//将文件读入内存
$file_data=fread($file,$buffer);
//每次向客户端回送1024个字节的数据
echo $file_data;
}
//关闭文件句柄
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
case 'doc':
if(file_exists($dir.$filename)){
$file = fopen($dir . $filename,"r"); // 打开文件 // 输入文件标签
header('Content-Type: application/force-download');
header('Content-Type:application/msword');
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($dir . $filename));
Header("Content-Disposition: attachment; filename=" .$filename); // 输出文件内容
echo fread($file, filesize($dir.$filename));
$buffer=1024;
while (!feof($file)) {
$file_data=fread($file,$buffer);
echo $file_data;
}
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
case 'docx':
if(file_exists($dir.$filename)){
$file = fopen($dir . $filename,"r"); // 打开文件 // 输入文件标签
header('Content-Type: application/force-download');
header('Content-Type:application/vnd.openxmlformats');
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($dir . $filename));
Header("Content-Disposition: attachment; filename=" .$filename); // 输出文件内容
echo fread($file, filesize($dir.$filename));
$buffer=1024;
while (!feof($file)) {
$file_data=fread($file,$buffer);
echo $file_data;
}
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
case 'ppt':
if(file_exists($dir.$filename)){
$file = fopen($dir . $filename,"r"); // 打开文件 // 输入文件标签
header('Content-Type: application/force-download');
header('Content-Type:application/vnd.ms-powerpoint');
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($dir . $filename));
Header("Content-Disposition: attachment; filename=" .$filename); // 输出文件内容
echo fread($file, filesize($dir.$filename));
$buffer=1024;
while (!feof($file)) {
$file_data=fread($file,$buffer);
echo $file_data;
}
fclose($file);
}else{
echo "<script>alert('文件不存在')</script>";
echo "<script>window.location='doc.html'</script>";
}
break;
}
break;
}
##########删除文件###############
$dh = opendir($dir);
while (($file = readdir($dh)) !== false){
if($file != '.' && $file != '..'){
if($file == $filename){
unlink($dir.$filename);
}
}
}
closedir($dh);
相关文章推荐
- php文件上传、下载和删除的例子
- 求一个可以上传、下载、在线阅读(doc、ppt、pdf)的网站源码
- 将pdf、doc、docx、ppt格式文件转化swf格式文件的方法
- doc,docx,pdf,ppt等文件类型读取方法
- php文件上传、下载和删除示例
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- php操作ftp上传文件、创建目录、删除文件、删除目录、下载文件到本地
- FTP文件上传下载删除_解决乱码.doc
- Android中pdf,doc,docx,xls,xlsx,ppt,pptx等office文件预览
- "doc", "docx", "xls", "xlsx", "ppt", "pptx",txt。等文件转化为pdf
- 【Android】Android阅读各种格式文件(包括DOC/DOCX/WPS/XLS/XLSX/PPT/PPTX/TXT/PDF)
- Java 使用jacob ppt文件转pptx,doc转docx;word 转html、pdf等
- php操作ftp上传文件、创建目录、删除文件、删除目录、下载文件到本地
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- 用java统计pdf,ppt,pptx,doc,docx文件的总页码
- php文件上传、下载和删除示例
- [转]文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- 在服务端进行目录建立、删除,文件上传、删除的过程的php代码
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等