最近时间空余,总结了一些关于bootstrap fileinput组件的一些常见用法,特此分享到phpstudy平台,供大家参考,同时也方便以后的查找。本文写的不好还请见谅。

一、效果展示

1、原始的input type='file',简直不忍直视。

2、不做任何装饰的bootstrap fileinput:(bootstrap fileinput初级进化)

3、bootstrap fileinput高级进化:中文化、可拖拽上传、文件扩展名校验(如果不是需要的文件,不让上传)

拖拽上传

上传中

4、bootstrap fileinput究极进化:允许同时多线程上传多个文件。

上传中

上传完成后

二、代码示例

怎么样?效果如何?不要急,我们一步一步来实现以上的效果。

1、cshtml页面

首先引入需要的js和css文件。

//bootstrap fileinput

bundles.Add(new ScriptBundle("~/Content/bootstrap-fileinput/js").Include(

"~/Content/bootstrap-fileinput/js/fileinput.min.js",

"~/Content/bootstrap-fileinput/js/fileinput_locale_zh.js"));

bundles.Add(new StyleBundle("~/Content/bootstrap-fileinput/css").Include(

"~/Content/bootstrap-fileinput/css/fileinput.min.css"));

@Scripts.Render("~/Content/bootstrap-fileinput/js")

@Styles.Render("~/Content/bootstrap-fileinput/css")

然后定义input type='file'标签

×

请选择Excel文件

下载导入模板

重点看这一句:

multiple表示允许同时上传多个文件,class=“file-loading”表示标签的样式。

2、js初始化

$(function () {

//0.初始化fileinput

var oFileInput = new FileInput();

oFileInput.Init("txt_file", "/api/OrderApi/ImportOrder");

});

//初始化fileinput

var FileInput = function () {

var oFile = new Object();

//初始化fileinput控件(第一次初始化)

oFile.Init = function(ctrlName, uploadUrl) {

var control = $('#' + ctrlName);

//初始化上传控件的样式

control.fileinput({

language: 'zh', //设置语言

uploadUrl: uploadUrl, //上传的地址

allowedFileExtensions: ['jpg', 'gif', 'png'],//接收的文件后缀

showUpload: true, //是否显示上传按钮

showCaption: false,//是否显示标题

browseClass: "btn btn-primary", //按钮样式

//dropZoneEnabled: false,//是否显示拖拽区域

//minImageWidth: 50, //图片的最小宽度

//minImageHeight: 50,//图片的最小高度

//maxImageWidth: 1000,//图片的最大宽度

//maxImageHeight: 1000,//图片的最大高度

//maxFileSize: 0,//单位为kb,如果为0表示不限制文件大小

//minFileCount: 0,

maxFileCount: 10, //表示允许同时上传的最大文件个数

enctype: 'multipart/form-data',

validateInitialCount:true,

previewFileIcon: "",

msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",

});

//导入文件上传完成之后的事件

$("#txt_file").on("fileuploaded", function (event, data, previewId, index) {

$("#myModal").modal("hide");

var data = data.response.lstOrderImport;

if (data == undefined) {

toastr.error('文件格式类型不正确');

return;

}

//1.初始化表格

var oTable = new TableInit();

oTable.Init(data);

$("#div_startimport").show();

});

}

return oFile;

};

说明:

(1)fileinput()方法里面传入的是一个json数据,它里面有很多属性,每个属性代表着初始化上传控件的时候的特性,如果这些属性都不设置,则表示使用默认的设置。如果园友们想看看它里面有哪些属性,可以打开fileinput.js的源码,在它的最后如图:

这些属性如果不特意设置,就会使用默认值。

(2)$("#txt_file").on("fileuploaded", function (event, data, previewId, index) {}这个方法注册上传完成后的回调事件。也就是后天处理上传的文件之后进入这个方法里面处理。

3、后台C#对应的方法

还记得在js里面初始化控件方法fileinput()里面有一个参数url吗,这个url对应的值就指示C#后天对应的处理方法。还是贴出后台的处理方法。

[ActionName("ImportOrder")]

public object ImportOrder()

{

var oFile = HttpContext.Current.Request.Files["txt_file"];

var lstOrderImport = new List();

#region 0.数据准备

var lstExistOrder = orderManager.Find();

var lstOrderNo = lstExistOrder.Select(x => x.ORDER_NO).ToList();

var lstTmModel = modelManager.Find();

var lstTmMaterial = materialManager.Find();

//var iMax_Import_Index = lstExistOrder.Max(x => x.IMPORT_INDEX);

//iMax_Import_Index = iMax_Import_Index == null ? 0 : iMax_Import_Index.Value;

#endregion

#region 1.通过Stream得到Workbook对象

IWorkbook workbook = null;

if (oFile.FileName.EndsWith(".xls"))

{

workbook = new HSSFWorkbook(oFile.InputStream);

}

else if(oFile.FileName.EndsWith(".xlsx"))

{

workbook = new XSSFWorkbook(oFile.InputStream);

}

if (workbook == null)

{

return new { };

}

//...............处理excel的逻辑

//orderManager.Add(lstOrder);

lstOrderImport = lstOrderImport.OrderBy(x => x.IMPORT_STATU).ToList();

return new { lstOrderImport = lstOrderImport };

}

由于博主的项目是上传excel,所以这里用是用的NPOI的逻辑,如果是上传图片等文件,可以使用GDI去处理图片。

4、同时上传多个文件

同时上传多个文件的时候,前台会发送多个异步的请求到后台,也就是说,当同时上传三个文件的时候,后台的ImportOrder方法会进入三次。这样就能使用多线程同时去处理三个文件。

三、总结

关于bootstrap fileinput的基础使用大概就介绍完了,其实就是一个上传的组件,也不存在什么高级用法。重点是把界面做得更加友好,更好的增加用户体验。

关于Bootstrap Fileinput文件上传组件用法详解就给大家介绍这么多,希望对大家有所帮助!

fileinput 时间_JavaScript_Bootstrap Fileinput文件上传组件用法详解,最近时间空余,总结了一些关...相关推荐

  1. php 上传 文件模板,PHP文件上传代码用法详解

    本文章是一篇适合于php入门者的文章告诉大如何编辑php文件上传代码,在编辑前我们需要了解几点,有及FILES全局变量的理解了,有需要学习php文件上传的朋友可参考本文章. php文件上传代码编写过程 ...

  2. fileupload的回调方法_jQuery File Upload文件上传插件使用详解

    本篇教程介绍了jQuery File Upload文件上传插件使用详解,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入. < jQuery File Upload 是一个 ...

  3. SpringMVC+BUI实现文件上传(附详解,源码下载)

    中午有限时间写这博文,前言就不必多说了,直奔主题吧. BUI是一个前端框架,关于BUI的介绍请看博主的文章那些年用过的一些前端框架. 下面我们开始实例的讲解! 一.效果演示: 上传成功后,会发现本地相 ...

  4. netcore 图片 文件大小_NetCore 3.0文件上传和大文件上传的限制详解

    NetCore文件上传两种方式 NetCore官方给出的两种文件上传方式分别为"缓冲"."流式".我简单的说说两种的区别, 1.缓冲:通过模型绑定先把整个文件保 ...

  5. php 文件上传页面模板,PHP文件上传类实例详解

    本文实例讲述了PHP文件上传类.分享给大家供大家参考,具体如下: 这里演示了FileUpload.class.php文件上传类,其中用到了两个常量,可在网站配置文件中定义: define('ROOT_ ...

  6. Struts文件上传与下载详解_文件的下载

    在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下struts里面是怎么个下载法! 1.写个文件下载的表单页面: <a href="downLoad.action? ...

  7. Struts文件上传与下载详解 _上传多个文件

    在上一篇中给大家列出的单个文件的上传,那么这一篇咱们讲讲上传多个文件改怎么作呢?由于过程和上传单个文件的类似,所以在这里不细说,相信大家都能看懂,看不懂的可以在评论区留言,我看到之后会及时回复的!! ...

  8. Struts文件上传与下载详解_上传单个文件

    大家都知道Servlet上传文件的时候用的是commons-fileupload插件上传的,但是过程极其的麻烦,同样Struts2也有自带的文件上传,但是过程比Servlet里面的简单了不少,接下来请 ...

  9. java监听上传文件,Springmvc文件上传监听详解

    spring mvc CommonsMultipartResolver 文件上传监听. /** * 重写 parseRequest方法 监听 */ @Override protected Multip ...

最新文章

  1. 使用Spring MVC HandlerExceptionResolver处理异常
  2. 剑指offer---11---二进制中1的个数
  3. Hyperledger Besu企业以太坊快速教程
  4. Python apply函数
  5. Oracle缓存机制
  6. 图神经网络概述:Graph Neural Networks
  7. mysql中预定义常量_PHP预定义常量
  8. 【机器学习-西瓜书】三、逻辑回归(LR);线性判别分析(LDA)
  9. 实现横向排列的几种方案
  10. 车道线检测-python实现
  11. bzoj:1828: [Usaco2010 Mar]balloc 农场分配
  12. 奇怪的 Win10 输入法问题
  13. 2元一次方程计算机求解,在Excel中求解二元一次方程组
  14. 《Netty权威指南》(五)ByteBuf源码分析
  15. 装系统比较好用的PE工具推荐
  16. 计算机不工作时硬盘自动响,电脑硬盘不规律响的解决方法
  17. ONOS 南向抽象层分析
  18. latex数字引用参考文献
  19. 关于springAOP的织入
  20. Handler中MessageQueue的enqueueMessage笔记

热门文章

  1. Markdown简明教程
  2. 项目遇到的问题以及解决
  3. Zookeeper知识梳理
  4. display none的元素重新展示如何撑开页面_【第1962期】巧用 display: contents 增强页面语义...
  5. java download oracle,Oracle Java Products Download
  6. springboot+springsecurity+mybatis plus之用户授权
  7. JAVA使用正则表达式给字符串添加分隔符
  8. Spring Boot——SpringMVC带URL前缀的静态资源解决方案
  9. 高精度计算(High-Precision_Calculation)
  10. dreamstart的催促