自动获取下载目录下所以文件, 并在web页面展示出来,可以下载
1.在根目录下创建个apps目录
2.需要两个文件,一个html展示页面,一个php处理接口
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/icon.css">
<script type="text/javascript" src="jquery-easyui-1.4/jquery.min.js"></script>
<script type="text/javascript" src="jquery-easyui-1.4/jquery.easyui.min.js"></script>
<script type="text/javascript" src="jquery-easyui-1.4/locale/easyui-lang-zh_CN.js"></script>
</head>
<body style="padding:0px;margin:0px">
<div id="currency">
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-redo" plain="true" onclick="getDirFile()">获取文件列表</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">删除</a>
</div>
<div id="dataTable" style="width:400px" ></div>
</div>
<script type="text/javascript">
function getDirFile() {
$('#currency #dataTable').datagrid({
url: 'c_dir_filelist.php?action=list',//加类型参数
remoteSort: true,
pagination:false,
rownumbers:true,
fitColumns:false,
striped:true,
nowrap:true,
pageSize:20,
queryParams:{
},
columns:[[
{field:'name',title:'文件名',width:250},
// {field:'dir',title:'文件路径',width:180},
// {field:'ext',title:'后缀名',width:180},
{field:'ACTION',title:'操作',width:100,},
]],
});
}
//删除
function destroyUser(){
var row = $('#dataTable').datagrid('getSelected');
if (row){
$.messager.confirm('Confirm','确认要删除吗?删除后彻底失去该文件',function(r){
if (r){
$.post('c_dir_filelist.php?action=del',{filename:row.name},function(result){
if (result.success){
$('#dataTable').datagrid('reload'); // reload the user data
} else {
$.messager.show({ // show error message
title: 'Error',
msg: result.errorMsg
});
}
},'json');
}
});
}
}
</script>
</body>
</html>
用了个easyui 框架展示. 你们可以用ajax 一样的,反正都是服务端处理
服务端
$action = @$_REQUEST['action'];
//自动加载其他的配置文件
$dir_conf = dirname(__FILE__).'/apps/';//加载的配置文件夹
if($action == 'list'){
$list_dir = scandir($dir_conf);//获取目录下所有文件
//var_dump($list_dir);
// $httpHost = 'http://'.$_SERVER['HTTP_HOST'].'/newweb/apps/';//域名路径
$httpHost = 'http://'.$_SERVER["HTTP_HOST"].'/apps/';//域名路径
$fileArr = array();
foreach ($list_dir as $k=>$v){
if($v!='.' && $v!='..') {
$openfile = array();
$openfile['name'] = trim($v);
$file_url = $httpHost.$v; //文件地址
// $ext = explode('.',$v);
// $openfile['ext'] = $ext[count($ext)-1];//后缀
$openfile['ACTION'] = '<a href="'.$file_url.'">下载</a>';//后缀
$fileArr[] = $openfile;
}
}
//var_dump($fileArr);
echo json_encode($fileArr);
}elseif ($action == 'del'){
$filename = $_REQUEST['filename'];
if(empty($filename)) die('请选择文件');
$dir = $dir_conf.'/'.$filename;
unlink ( $dir );
echo json_encode(array('success'=>1));//成功
}
获取目录下文件,添加域名路径, web端就可以下载了. 还有个直接删除指定文件
预览图:
---------------------------------------------------------------------------------------------------------------分割线
功能简单, 其实但是可以去拓展. 做出更复杂的权限管理.
比如, 建一个fileList的文件数据库表.
然后,存储 文件名, 后缀, 路径, 状态, 管理组 这些字段
获取文件列表: 变成只查询fileList 文件表, 获取状态为1的数据
再加个更新文件表功能: 获取文件目录下, 所有文件名, 并与fileList表的文件名比对. 更新数据库表,并且赋予文件状态和权限
删除某个文件时: 可以只做逻辑删除...