实现简单的csv文件上传和bootstrap表格的下载

   2023-02-07 学习力0
核心提示:一、写一个简单的页面并发送文件  引入bootstrap.js,jQuery.js等,具体的网页就不细写了,很简单。  加入input框,button控件,进度条。如下: li class="list-group-item" id="input-file-group"div class="input-group mb-3"!-- 上传.csv文件 --input

一、写一个简单的页面并发送文件

  引入bootstrap.js,jQuery.js等,具体的网页就不细写了,很简单。

  加入input框,button控件,进度条。如下:

 <li class="list-group-item" id="input-file-group">
    <div class="input-group mb-3">
    <!-- 上传.csv文件 -->
        <input type="file" class="form-control" id="inputGroupFile" aria-describedby="inputGroupFileAddon" aria-label="Upload" accept=".csv">
        <button class="btn btn-default btn-outline-secondary" type="button" id="inputGroupFileAddon" onclick="submitUpload()">确认提交</button>
        <br>
        <!-- 进度条 -->
        <div class="progress" style="width: 500px; margin: 15px 10px">
            <div class="progress-bar progress-bar-striped active" id="progress-bar"></div>
        </div>
    </div>
</li>

  编写点击事件

    获取文件

 var orderFile =document.querySelector('#inputGroupFile').files;

    创建formdata对象并添加文件

var fd=new FormData();
fd.append('avatar',orderFile[0]);

    使用Ajax发送文件并实现进度条

$.ajax({
            type: "POST",
            url: "",
            data: fd,
            processData: false,
            contentType: false,
            error: function (data) {
                setTimeout(function(){
                    alert("文件上传失败");
                },50);     
            },
            success: function (data) {
                setTimeout(function(){
                    alert("文件上传成功");
                    },1000);
            },
            xhr: function () {
                myXhr = $.ajaxSettings.xhr();
                if (myXhr.upload) {  
                    myXhr.upload.addEventListener('progress', progressHandlingFunction, false);
                }
                return myXhr; 
            }
});

function progressHandlingFunction(event) {
    var loaded = Math.floor(100 * (event.loaded / event.total)); 
    $("#progress-bar").html(loaded + "%").css("width", loaded + "%");
}

  实现的效果如下所示:

 

 

 

 

 

 二、Multer中间件解析上传文件

  先引入multer

const multer = require('multer');

  

router.post('', multer().single('avatar'), (req, res) => {

    let { buffer, mimetype } = req.file;
    var tempString = buffer.toString('utf8');
});

  这里,buffer的内容就是十六进制的文件信息,mimetype是文件格式text/csv

  转换成utf-8编码后就可以使用了。

 

 

 三、bootstrap表格的下载

  提一下bootstrap表格的实现:

  引入bootstrap-table插件

<link href="https://unpkg.com/bootstrap-table@1.16.0/dist/bootstrap-table.min.css" rel="stylesheet">
<script src="https://unpkg.com/bootstrap-table@1.16.0/dist/bootstrap-table.min.js"></script>
<script src="https://unpkg.com/bootstrap-table@1.16.0/dist/locale/bootstrap-table-zh-CN.min.js"></script>

  版本要对应上

  使用的代码: 

$('#searchResultTable').bootstrapTable({
    method:'get',
    url:'',
    pageNumber : 1, 
    pagination : true,
    sidePagination : 'client',
    pageSize : 4,
    pageList : [ 5, 10, 20, 30 ],
    queryParams : function(params) {
    var a=111;
    };
  
columns: [{
        title: '订单编号',
        field: 'orderID',

    },{
        title: '订单类型',
        field: 'orderType',
    }]
});

  这里 router要发送一个符合上述行的json数据 

  建议用如下方式

res.json(aaa);

  如下所示:

[
  {
    orderID: '28435647',
    orderType: '0'
  },
  {
    orderID: '50404380',
    orderType: '0'
  }
]

  效果如下:

  现在,使用bootstrap-table-export插件实现bootstrap的导出

  加入依赖(按顺序),和上面有些重复的

<link href="https://unpkg.com/bootstrap-table@1.16.0/dist/bootstrap-table.min.css" rel="stylesheet">
<script src="https://unpkg.com/tableexport.jquery.plugin/tableExport.min.js"></script>
<script src="https://unpkg.com/bootstrap-table@1.16.0/dist/bootstrap-table.min.js"></script>
<script src="https://unpkg.com/bootstrap-table@1.16.0/dist/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="https://unpkg.com/bootstrap-table@1.16.0/dist/extensions/export/bootstrap-table-export.min.js"></script>

  在之前的bootstrap表格的js代码中加入如下一行:

showExport:true,

  会出现如下按钮:

 

   点击对应的格式就可以导出相应文件。

  如果出现问题,一般就是bootstrap、jQuery、bootstrap-table、bootstrap-table-export、tableExport的版本对应不上,选择合适的版本就行。

参考文章:

https://blog.csdn.net/m0_53620413/article/details/121126046

https://blog.csdn.net/qq_45859670/article/details/123306590

https://www.jianshu.com/p/9cc6c903c4b6

 

 

 

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Bootstrap基础:选择器
    1.CSS属性选择器[arrt=value]   该属性有指定的确切值[arrt~=value]  该属性值必须是多个空格隔开的值,比如,class=“title featured home”,而且这些值中的一个必须是指定的值“value”[arrt|=value]  属性的值就是“value”或者以“value”开始并立即
    03-16
  • bootstrap模态框手动开启关闭与设置点击外部不关闭
    bootstrap模态框手动开启关闭与设置点击外部不
    完整的参考菜鸟教程:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html1.手动开启与关闭模态框的方法  按钮开启与JS函数开启(2种)!DOCTYPE htmlhtmlheadmeta charset="utf-8"titleBootstrap 实例 - 模态框(Modal)插件/titlelink rel="styleshe
    03-16
  • Bootstrap.css 中请求googleapis.com/css?famil
    问题描述: Web中引入bootstrap.css中头部有访问Google服务器的请求 @import url("//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700");     国内访问不稳定,页面反应慢解决:将请求结果保存下来,放到本地,重新声明请求1.请求http:
    03-16
  • 基于.NET6、FreeSql、若依UI、LayUI、Bootstrap
    近几年,.net生态日益强大,特别是跨平台技术,性能提升,那真的是强大无比。为了日常能够快速开发,笔者基于基于.NET6、FreeSql、若依UI、LayUI、Bootstrap构建插件式的CMS,请大家多提意见建议。在此,要感谢若依CMS的作者,借用了皮肤框架。懒的发文字描述
    03-16
  • elasticsearch bootstrap.memory_lock
    检查bootstrap.memory_lock设置是否生效get http://10.127.0.1:9200/_nodes?filter_path=**.mlockall响应:{"nodes": {"9giihmDNRdS136KT52Gl5g": {"process": {"mlockall": true}},"X0zQESeeT8uJ9kVXvHpl-w": {"process":
    03-08
  • day 57 Bootstrap 第一天
    day 57 Bootstrap 第一天
    一 、bootstrap是什么 http://v3.bootcss.com/css/#grid-options(参考博客)是一个前端开发的框架.HTMLCSSJS下载地址:https://v3.bootcss.com/ (当前版本3.3.7)目录结构 bootstrap-3.3.7-dist/├── css// CSS文件│ ├── bootstrap-theme.css// Boo
    03-08
  • 基于bootstrap_网站汇总页面 bootstrap网站案例
    基于bootstrap_网站汇总页面 bootstrap网站案例
    !DOCTYPE htmlhtml lang="en"headmeta charset="UTF-8"title我的网页/titlelink rel="stylesheet" href="css/bootstrap.min.css"/headbody!--头部信息--nav class="navbar navbar-inverse navbar-fixed-top"div class="conta
    03-08
  • 50 个 Bootstrap 插件
    Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。本文向你推荐 50 个 Bootstrap 的插件,可以考虑在你下一个项目中使用它们。1. Boots
    03-08
  • Bootstrap资源 bootstrap官方文档
    官方网站:http://getbootstrap.com/http://twitter.github.com/bootstrap/index.html 官方博客:http://blog.getbootstrap.com/  中文文档:http://wrongwaycn.github.com/bootstrap/docs/index.html  图标:Font Awesomehttp://fortawesome.github.com
    03-08
  • bootstrap bootstrap检验
    bootstrap是简洁灵活的用于搭建web页面的Html,Css工具集。---是一组简洁强大的前端开发框架。 Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。是一个CSS/HTML框架。bootstrap中的js框架依赖于jquery,因此jquery要在bootstrap之前引进一般要把CS
    03-08
点击排行