自动获取目录下文件和文件名,并能选择下载文件.适用于下载网站

17 篇文章 0 订阅

自动获取下载目录下所以文件, 并在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表的文件名比对. 更新数据库表,并且赋予文件状态和权限

删除某个文件时: 可以只做逻辑删除...

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值