【layui】文件上传&&文件导入

一、【文件上传】
在这里插入图片描述

<div class="layui-form-item">
   	<label class="layui-form-label" style="width: 50px;">上传</label>
    <div class="layui-input-block" style="margin-left: 80px;">
        <div class="layui-input-inline" style="width: 220px;">
            <input name="value" id="download" lay-verify="required" 
            placeholder="文件地址" class="layui-input">
        </div>
        <div class="layui-input-inline" style="width: auto;margin-right: 0;">
            <button type="button" class="layui-btn" id="annex_upload">
            <i class="layui-icon">&#xe67c;</i>上传文件</button>
            <a class="layui-btn layui-btn-primary" onclick="see_img();">查看/下载文件</a>
        </div>
    </div>
</div>

var loading=null;
// 上传文件
upload.render({
    elem: '#annex_upload'
    ,url: layui.setter.baseUrl+'admin/upload/upload'
    ,multiple: false
    ,accept:'file'
    ,done: function(res){
        layer.close(loading);
        if(res.code==1){
            $('#download').val(res.data);
        }else{
            layer.msg(res.msg);
        }
    },before:function(){
        loading = layer.load(0);
    },error:function(err){
        layer.close(loading);
        layer.msg('上传出错');
     }
 });
 // 查看/下载文件
 window.see_img=function(){
     var testURL = $('#download').val();
     if(!testURL){ layer.msg('文件地址不能为空!'); return }
     if(isImageURL(testURL)){
         layer.photos({
             photos: {
                 title: "查看",
                 data: [{ src: testURL }]
             },
             shade: 0.5,closeBtn: 1,anim: 5
         });
     } else{
         window.location.href = testURL;
     }
 };
 // 判断一个链接是否指向图片
 function isImageURL(url) {
     // 定义常见的图片文件扩展名
     const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.svg'];
     // 获取链接的最后一个部分(通常是文件名和扩展名)
     const urlParts = url.split('/');
     const fileName = urlParts[urlParts.length - 1];
     // 获取文件的扩展名
     const fileExtension = '.' + fileName.split('.').pop();
     // 检查扩展名是否在图片扩展名列表中
     return imageExtensions.includes(fileExtension.toLowerCase());
 }

二、【文件导入】table 表格数据
在这里插入图片描述

1、弹窗-数据导入

admin.popup({
   	title: "数据导入",
    area: admin.screen() < 2 ? ['95%', '90%'] : ["500px", "220px"],
    id: "LAY-popup-import",
    success: function (layero, index) {
        view(this.id).render('/member/add_import').done(function () {
            form.render(null, 'add_import'); // 弹窗的lay-filter值
            // 监听提交*****文件上传
            upload.render({
                elem: '#LAY_avatarUpload'
                , url: layui.setter.baseUrl + 'admin/member/member_import'
                , multiple: true
                , accept: 'file' //允许上传的文件类型
                , acceptMime: '.xlsx,.csv'
                , before: function (obj) {
                    //预读本地文件示例,不支持ie8
                    obj.preview(function (index, file, result) {
                        $('#ht_file').val(file.name);
                    });
                }
                , done: function (res) {
                    if (res.code == 1) {
                        layer.msg(res.msg, { icon: 1, time: 1000 }, function () {
                            layer.close(index); //执行关闭
                            table.reload('list'); //重载表格
                        });
                        $('#ht_file').attr('type', 'text');
                    } else {
                        layer.msg(res.msg, { icon: 5, anim: 6, shade: 0.5, time: 1000 });
                    }
                }
            });
        });
    }
});

2、/member/add_import.html

<form class="layui-form" action="" lay-filter="add_import" style="padding: 0 20px 0 0;">
    <div class="layui-form-item">
        <label class="layui-form-label">上传文件</label>
        <div class="layui-input-block">
            <div class="">
                <button type="button" class="layui-btn" id="LAY_avatarUpload" style="background-color: #5fb878;">
                <i class="layui-icon">&#xe67c;</i>选择文件</button>
                <span style="height: 38px;line-height: 38px;color: #999;font-size: 13px;margin-left: 10px;">仅支持.csv或.xlsx格式</span>
            </div>
            <div class="" style="margin-top: 5px;">
                <input type="hidden" id="ht_file" placeholder="附件地址" disabled class="layui-input">
            </div>
        </div>
    </div>
    <a onclick="xs_export()" style="color: red;margin-left: 10%;text-decoration:underline;">请点击下载导入模板,按照模板格式导入</a>
</form>

<script>
layui.use(['admin','form','upload','layedit','view','setter','layer'], function(){
    var $ = layui.$
        ,admin = layui.admin
        ,setter = layui.setter
        ,layedit = layui.layedit
        ,element = layui.element
        ,form = layui.form
        ,view = layui.view
        ,layer = layui.layer
        ,upload = layui.upload
        ,router = layui.router();

    element.render();
    form.render(null, 'add_import');

    // 会员导入模板导出
    window.xs_export=()=>{
        window.location.href = layui.setter.baseUrl+'admin/member/member_download_template';
        // window.location.href = window.location.origin+'/meeting_member_unit_import.xlsx';
    }

});
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值