zoukankan      html  css  js  c++  java
  • layui文件下载

    Layui文件下载

    前台代码

           <form class="layui-form layui-col-space5">
                <div class="demoTable">
                    <label>搜索:</label>
                    <div class="layui-inline">
                        <select id="fileName" style="height:38px;365px;" lay-search=""></select>
                    </div>
                    <div class="layui-inline layui-show-xs-block" id="demoTable">
                        <button class="layui-btn" id="search" type="button">搜索</button>
                    </div>
                    <div class="layui-inline layui-show-xs-block" id="demoTable">
                        <button class="layui-btn" onclick="location.reload()" type="button"><i class="layui-icon layui-icon-refresh" style="line-height:30px"></i></button>
                    </div>
                </div>
            </form>
    

    JS代码
    var dt = [];
    $(document).ready()
    {
        GetFile();
    }
    function GetFile() {
        $.ajax({
            url: '/File/GetFileData',
            type: 'post',
            success: function (data) {
                dt = data;
    
                $("#fileName").append("<option value=''>请选择</option>");
                for (var i = 0; i < data.length; i++) {
                    $("#fileName").append("<option value='" + data[i].filename + "'>" + data[i].filename + "</option>");
                }
            },
            error: function () {
                alert("网络错误");
            }
        })
    };
    layui.use(['table'], function () {
        var table = layui.table;
    
        table.render({
            elem: '#file'
          , data: dt
          , cols: [[
             { field: 'filename', title: '文件名',  '80%', align: 'center' },
             { title: '操作', toolbar: '#barDemo',  '20%', align: 'center' }
          ]]
          , page: true
        });
    
        table.on('tool(file)', function (obj) {
            var data = obj.data;
            //console.log(obj)
            if (obj.event === 'Down') {
                //alert(data.filename);
                window.location.href = '/File/GetDataByName?filename=' + data.filename
            }
            else {
                layer.confirm('真的删除行么', function (index) {
                    $.ajax({
                        url: '/File/GetDeleName',
                        type: 'post',
                        data: { filename: data.filename },
                        success: function (data) {
                            if (data.code == "0") {
                                //layer.alert("删除成功", {
                                //    icon: 6
                                //},
                                //function () {
                                //    window.location.reload();
                                //});
                                layer.msg('已删除数据!', { icon: 1, time: 1000 });
                                setTimeout('window.location.reload()', 1000);
                            }
                            else {
                                alert(data.msg);
                                window.location.reload();
                            }
    
                        },
                        error: function () {
                            alert("网络错误");
                        }
                    })
                });
               
            }
        });
    
        $("#search").click(function () {
            var fileName = $("#fileName").val();
            if (fileName == '' || fileName == 'undefined') {
                var dt2 = dt;
            } else {
                var dt2 = [{ filename: fileName }];
            }
            table.render({
                elem: '#file'
                  , data: dt2
                  , cols: [[
                     { field: 'filename', title: '文件名',  '80%', align: 'center' },
                     { title: '操作', toolbar: '#barDemo',  '20%', align: 'center' }
                  ]]
                 , page: true
            });
        })
    })
    

    后台代码

        public ActionResult GetFileData()
            {
                //Uploadfile存放文件的文件夹名
                string path = Server.MapPath("~/Uploadfile");
                DirectoryInfo root = new DirectoryInfo(path);
                FileInfo[] files = root.GetFiles();
                List<FileModel> list = new List<FileModel>();
                foreach (var item in files)
                {
                    FileModel m = new FileModel();
                    m.filename = item.Name;
                    list.Add(m);
                }
                return Json(list);
            }
    
            public ActionResult GetDataByName(string filename)
            {
                Dictionary<string, string> dc = new Dictionary<string, string>();
                dc.Add("exe", "application/x-msdownload");
                dc.Add("msi", "application/x-msi");
                dc.Add("apk", "application/vnd.android.package-archive");
                dc.Add("zip", "application/x-zip-compressed");
                dc.Add("rar", "application/octet-stream");
                dc.Add("btw", "application/octet-stream");
                dc.Add("dll", "application/x-msdownload");
                dc.Add("jpg", "image/jpeg");
                dc.Add("xls", "application/vnd.ms-excel");
    
                string path = Server.MapPath("~/Uploadfile");
                Stream sm = new FileStream(path + "\" + filename, FileMode.Open);
                if (!dc.ContainsKey(filename.Split('.')[1]))
                {
                    return File(sm, "application/octet-stream", filename);
                }
                return File(sm, dc[filename.Split('.')[1]], filename);
    
    
            }
    
            [HttpPost]
            public ActionResult GetDeleName(string filename)
            {
                string path = "";
    
                path = Server.MapPath("~/Uploadfile/") + filename;
                //判断该文件是否存在
                if (System.IO.File.Exists(path))
                {
                    System.IO.File.Delete(path);
                    var relt = new { code = 0, msg = "删除成功" };
                    return Json(relt);
                }
                else
                {
                    var relt = new { code = 1, msg = "不存在该文件" };
                    return Json(relt);
                    //return Content(JsonConvert.SerializeObject(relt));
                }
            }
    

    补充:HTTP Content-type常用对照表

    https://tool.oschina.net/commons

  • 相关阅读:
    “xmlns:d="http://schemas.microsoft.com/expression/blend/2008"” 命名空间不能被解析
    mysql 连接命令 表管理 ,克隆表,临时表,字符串属性,设定语句间的分隔符
    视图
    NULL值比较,两个列的合并,列值按条件替换。
    词性和 句子成份
    设置用户帐号只能一个地方登录
    数字的格式化,异常处理
    接口,构造器与垃圾回收机制,对像的生命周期。非静态方法与静态方法。
    继承,多态..
    JavaScript —— 常用数据类型隐式转换
  • 原文地址:https://www.cnblogs.com/Chen-Ru/p/14174230.html
Copyright © 2011-2022 走看看