Bootstrap fileinput 使用心得
来源:互联网 发布:紫云剑淘宝 编辑:程序博客网 时间:2024/05/29 15:53
因为公司项目里面用到多文件上传,选来选取就用了bootstrp fileinput
项目要求:1、支持预览 2、同步上传 3、上传前可以取消待上传文件 4、文件格式限制及文件大小限制
1、对上传控件的配置
$("#input-ke-2").fileinput({ theme: "explorer", //主题 language: 'zh', uploadUrl: "/Members/WorkOrder/PostAttachment",// 上传请求路径 allowedFileExtensions: ['jpg', 'gif', 'png', 'jpeg', 'pdf'],//允许上传的文件后缀 uploadAsync: false, //是否允许异步上传 showUpload: false,//是否显示上传按钮 showCaption: false,//是否显示容器
dropZoneEnabled: false,//是否显示拖拽区域 removeFromPreviewOnError:true,//是否移除校验文件失败的文件 uploadExtraData: function (previewId, index) { //额外参数 返回json数组 return { 'id': commId // commId 为全局变量,可以给控件上传额外参数 }; }, layoutTemplates: { //取消上传按钮 actionUpload:'', }, showPreview: true, //显示预览 minFileCount: 1, //最低文件数量 maxFileCount: 3, //最多文件数量 maxFileSize: 512, //允许文件上传大小 overwriteInitial: true, previewFileIcon: '<i class="fa fa-file"></i>', initialPreviewAsData: true, // defaults markup preferIconicPreview: false, // 是否优先显示图标 false 即优先显示图片 previewFileIconSettings: { // configure your icon file extensions 'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>', 'jpg': '<i class="fa fa-file-photo-o text-danger"></i>', 'gif': '<i class="fa fa-file-photo-o text-muted"></i>', 'png': '<i class="fa fa-file-photo-o text-primary"></i>', 'jpeg': '<i class="fa fa-file-photo-o text-primary"></i>' }, });
2、在配置完成后,对控件进行初始化
$("#input-ke-2").fileinput();
3、因为项目里面用的是同步上传,使用同步上传时,控件将文件数组发送给服务器,服务器依据传入的额外参数 和文件集合来 存储文件。(关于异步上传,控件会一个个的将文件发送给服务器,也就是有几个文件就会请求几次服务器),至于使用异步还是同步,还是依据项目的需求吧
4、关于如何后台如何接收文件,在最后会贴上代码。这里先将如何执行回调函数
5、
$("#input-ke-2").on("filebatchuploadsuccess", function (event, data, previewId, index) { var result = data.response.result;//接收后台返回的数据 $.each(result, function (i, item) //each函数会遍历从后台返回的错误信息 { if (item.error != null) { abp.message.warn(item.error); return; } }); $("#input-ke-2").fileinput('reset'); //重置上传控件(清空已文件) abp.notify.info("提交成功"); });
6、 这里提醒几个控件的方法
var filesCount = $('#input-ke-2').fileinput('getFilesCount'); //获取控件选中的文件(不包括校验失败的文件,如 文件名、文件大小)
$('#input-ke-2').fileinput('upload'); //然后触发插件开始上传文件
注意: 因为我用的是手动上传,故需要上面这个方法来执行控件上传。
后台代码:(我使用的是c#) 备注: 比较敏感信息 已用xxxx代替
public JsonResult xxx(int id) { string[] extName = { ".jpg", ".gif", ".jpeg", ".png", ".pdf" }; var _directory = xxxxxxx; // HttpFileCollection HttpFileCollection upload = System.Web.HttpContext.Current.Request.Files; List<FileViewOutput> fileInfoList = new List<FileViewOutput>(); for (int i = 0; i < upload.Count; i++) { FileViewOutput fileInfo = new FileViewOutput(); //限制上传文件数量 if (upload.Count > 3) { fileInfo.Error = "上传文件超过限制"; return Json(fileInfo); } HttpPostedFileBase file = Request.Files[i]; string ext = Path.GetExtension(file.FileName).ToLower(); if (!extName.Contains(ext)) { fileInfo.Error = "请上传jpg、gif、jpeg、png、pdf格式文件"; return Json(fileInfo); }; if (file.InputStream.Length > 512000) //1MB. { fileInfo.Error = "上传的文件不要超过500k"; return Json(fileInfo); } var namefix = Guid.NewGuid().ToString() + "_" + DateTime.Now.ToString("HHmmss") + Path.GetExtension(file.FileName); string file_name = "/" + namefix; fileInfo.Url = "xxxxxxxx" + namefix; fileInfo.Name = file.FileName; file.SaveAs(_directory + file_name); fileInfoList.Add(fileInfo); } //保存工单附件 根据 fileInfoList 和传递的id 进行文件的保存 return Json(fileInfoList); }
项目展示:
阅读全文
1 0
- Bootstrap fileinput 使用心得
- bootstrap-fileinput的使用
- bootstrap-fileinput的使用
- Bootstrap Fileinput的使用
- bootstrap-fileinput简单使用
- bootstrap fileinput 的使用感悟
- BootStrap FileInput 插件上传使用
- Bootstrap-fileinput控件的使用
- bootstrap-fileInput
- Bootstrap FileInput
- 使用Bootstrap FileInput遇到的坑
- Bootstrap-fileinput组件封装及使用
- bootstrap Fileinput插件的使用实例
- 使用插件Bootstrap Fileinput文件上传
- Bootstrap fileinput插件使用的那些坑
- 扒一扒使用boostrap-fileinput上传插件遇到的坑,Bootstrap-fileinput上传插件的使用详解,
- Bootstrap-fileinput插件使用教程 支持多文件上传
- Node项目之bootstrap-fileinput- 上传插件使用
- Opencv 各种特征点提取和匹配
- StringBuffer[]以及ArrayList[]的处理的注意事项
- HTML笔记(HTML样式简介,字体基于内容的样式与物理样式、字符实体)
- 20170701Windows10_06_线程函数、原子操作问题分析
- 名企笔试:Aamazon笔试题(Number of Groups )
- Bootstrap fileinput 使用心得
- 排序查找算法大总结
- PHP的中间件-ICE
- present,dismiss到任意控制器
- 简单对输入判断
- 用JQuery如何遍历多个select的同时遍历每一个select的option
- Mybatis 配置文件 useGeneratedKeys 参数
- 另类的"APP常驻"——UIStateRestoration
- bzoj 4289: PA2012 Tax