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

  引入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

 

实现简单的csv文件上传和bootstrap表格的下载的更多相关文章

  1. extjs实现简单的多文件上传(不借助任何插件),以及包含处理上传大文件的错误的各种处理办法

    在extjs的学习过程中,有遇到过有关多文件上传的问题,但是网上的大多数都是专门的去实现多文件上传而去做的组件之类的,没有特别简单的方式,于是小白便做了下面的内容,只是通过动态的去添加extjs的自带 ...

  2. 全网最简单的大文件上传与下载代码实现(React+Go)

    前言 前段时间我需要实现大文件上传的需求,在网上查找了很多资料,并且也发现已经有很多优秀的博客讲了大文件上传下载这个功能. 我的项目是个比较简单的项目,并没有采用特别复杂的实现方式,所以我这篇文章的目 ...

  3. PHP 简单处理--文件下载--文件上传

    文件下载部分 从 down 目录下下载,先获取目录下所有文件,再为每个文件添加download 信息,主要是文件名,后缀的关系. 分两部分,down_1.php 部分初始化,点击download 则跳 ...

  4. JQUERY插件JqueryAjaxFileUplaoder----更简单的异步文件上传

    异步上传相信大家都做过类似的功能,JqueryAjaxFileUploader为我们提供了更简单的实现和使用方式.不过既然是JQUERY的插件那么它所依赖的环境大家都懂得.JqueryAjaxFile ...

  5. Thinkphp3.2简单解决多文件上传只上传一张的问题

    html简单页面: index.html代码: <form action="{:U('index/upload')}" method="post" enc ...

  6. javaweb简单的实现文件上传

    java代码: // @RequestMapping(value = "/upload.do", method = RequestMethod.POST) @RequestMapp ...

  7. 利用Bootstrap简单实现一个文件上传进度条

    © 版权声明:本文为博主原创文章,转载请注明出处 说明: 1. 使用commons-fileupload.jar实现文件上传及进度监听 2. 使用bootstrap的进度条进行页面显示 3. 因为进度 ...

  8. xshell简单配置(文件上传和下载)

    1.安装lrzsz 1.1直接安装#yum install lrzsz 1.2sudo命令安装#sudo yum install lrzsz -y检查是否安装成功.#rpm -qa |grep lrz ...

  9. FTP文件上传 支持断点续传 并 打印下载进度(二) —— 单线程实现

    这个就看代码,哈哈哈哈哈  需要用到的jar包是: <dependency> <groupId>commons-net</groupId> <artifact ...

  10. JS文件上传神器bootstrap fileinput详解

    Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一 ...

随机推荐

  1. Spring Boot 源码学习之转载

    这次的学习,主要转载了 波波老师的笔记,后续会自己整理一份 1.Spring-Boot源码分析-源码编译:https://dpb-bobokaoya-sm.blog.csdn.net/article/ ...

  2. python关于Django搭建简单博客项目(详解一)

    上一篇我们说了如何搭建简易博客网站,下面我们来进行详细解答.本文没有特定顺序,请结合上一篇和源代码参照学习. 相关源代码和解析请参看:https://github.com/Cheng0829/mysi ...

  3. LcdTools如何通过PX01把EDP屏的EDID拷贝出来

    PX01点EDP屏在上电过程会自动读取屏EDID,怎么把EDP EDID值拷贝出来呢? 在上电时序函数调用SetEdidRdShowEn(ON)指令开启EDID值读取显示功能.如下图 通过上述操作开机 ...

  4. ES集群检查常用命令

    一.集群检查常用命令 查询集群状态命令: curl -XGET "http://ip:port/_cluster/health?pretty" 查询Es全局状态: curl -XG ...

  5. 云原生之旅 - 4)基础设施即代码 使用 Terraform 创建 Kubernetes

    前言 上一篇文章我们已经简单的入门Terraform, 本篇介绍如何使用Terraform在GCP和AWS 创建Kubernetes 资源. Kubernetes 在云原生时代的重要性不言而喻,等于这 ...

  6. Element Ui 安装以及配置

    npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 引入 Element 你可以引入整个 Element,或是根据需要 ...

  7. LoadRunner11使用代理录制脚本

    一.背景 电脑安装了LoadRunner11,在进行脚本录制时发现录制的脚本为空,即录制时事件为0,也没有自动调出对应的浏览器:如下图: 问了度娘,发现LR11要成功录制脚本,对各浏览器的版本有要求! ...

  8. 833——B题题解

    题目链接 题目大意: 给一串字符串(只包含0~9),定义一个最优子串的定义:如果该子串同字符种类数大于最最多字符出现数,那么这个子串可以被称为最优子串. 解题思路: 大眼一看这个数据范围他用n^2的算 ...

  9. 2022-11-09 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  10. ROSIntegration ROSIntegrationVision与虚幻引擎4(Unreal Engine 4)的配置

    ROSIntegration ROSIntegrationVision与虚幻引擎4(Unreal Engine 4)的配置 操作系统:Ubuntu 18.04 虚幻引擎:4.26.2 目录 ROSIn ...