经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Bootstrap » 查看文章
实现简单的csv文件上传和bootstrap表格的下载
来源:cnblogs  作者:福元路小佩奇  时间:2023/1/6 8:53:51  对本文有异议

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

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

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

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

  编写点击事件

    获取文件

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

    创建formdata对象并添加文件

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

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

  1. $.ajax({
  2. type: "POST",
  3. url: "",
  4. data: fd,
  5. processData: false,
  6. contentType: false,
  7. error: function (data) {
  8. setTimeout(function(){
  9. alert("文件上传失败");
  10. },50);
  11. },
  12. success: function (data) {
  13. setTimeout(function(){
  14. alert("文件上传成功");
  15. },1000);
  16. },
  17. xhr: function () {
  18. myXhr = $.ajaxSettings.xhr();
  19. if (myXhr.upload) {
  20. myXhr.upload.addEventListener('progress', progressHandlingFunction, false);
  21. }
  22. return myXhr;
  23. }
  24. });

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

  实现的效果如下所示:

 

 

 

 

 

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

  先引入multer

  1. const multer = require('multer');

  

  1. router.post('', multer().single('avatar'), (req, res) => {
  2. let { buffer, mimetype } = req.file;
  3. var tempString = buffer.toString('utf8');
  4. });

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

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

 

 

 三、bootstrap表格的下载

  提一下bootstrap表格的实现:

  引入bootstrap-table插件

  1. <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>

  版本要对应上

  使用的代码: 

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

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

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

  建议用如下方式

  1. res.json(aaa);

  如下所示:

  1. [
  2. {
  3. orderID: '28435647',
  4. orderType: '0'
  5. },
  6. {
  7. orderID: '50404380',
  8. orderType: '0'
  9. }
  10. ]

  效果如下:

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

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

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

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

  1. 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

 

 

 

 

原文链接:https://www.cnblogs.com/Peggy114514/p/17028679.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号