BootStrap Fileinput上传插件使用实例代码


Posted in Javascript onJuly 28, 2017

0、效果图

BootStrap Fileinput上传插件使用实例代码

1、引入js、css(建议css放在html头部,js加载在html底部)

<link href="~/Content/fileinput.min.css" rel="external nofollow" rel="stylesheet" />
<script src="~/scripts/jquery-1.10.2.min.js"></script>
<script src="~/scripts/fileinput.js"></script>
<script src="~/scripts/zh.js"></script>

2、html

<input type="file" id="uploaddoc" name="file" class="file" multiple />//上传按钮 multiple为可多文件上传 
<input type="hidden" id="Doc" name="doc" value="" />//保存文件路径

3、初始化

$("#uploaddoc").fileinput({ 
    language: 'zh', 
    uploadUrl: '/Form/upload',//后台上传方法 
    allowedFileExtensions: ['doc', 'docx'],//上传文件扩展名 
    shouUpload: false, 
    showRemove: false, 
    browseClass: 'btn btn-danger', 
    maxFileSize: 5000, 
    maxFileNum: 10, 
    allowedPreviewTypes: null, 
    previewFileIconSettings: { 
      'doc': '<i class="fa fa-file-word-o text-muted"></i>' 
    }, 
    previewFileExtSettings: { 
      'doc': function (ext) { 
        return ext.match(/(doc|docx)$/i); 
      } 
    } 
  });

4、回调方法

var List = new Array();//声明保存上传文件路径数组对象 
  //上传 - 删除 
  $('#uploaddoc').on('filesuccessremove', function (event, key) { 
    var abort = true; 
    if (confirm("确定要删除已上传的文件吗?")) { 
      abort = false; 
    } 
    var index1; 
    $.each(List, function (index, item) { 
      if (item.KeyID == key) {//默认fileinput.js的key与KeyID不一致,需要改动源码,详情见下文 
        index1 = index; 
        $.post("/Form/uploaddelete", { key: item.KeyID, path: item.path });//删除以上传到本地的文件 
      } 
    }); 
    List.splice(index1, 1); 
    var path = ""; 
    $.each(List, function (index, item) { 
      path += item.path; 
    }); 
    $("#Doc").val(path);//修改保存的文件路径 
  }); 
  //取消上传事件,左上角的取消按钮 
  $('#uploaddoc').on('filecleared', function (event, files) { 
    $.each(List, function (index, item) { 
      $.post("/Form/uploaddelete", { key: "all", path: item.path }); 
    }); 
    List = new Array();//清空保存的文件路径数组对象,这里是赋值给新的空对象,应该可以优化为删除以保存的所有值 
    $("#Doc").val(""); 
  }); 
 
  //上传 - 成功 
  $("#uploaddoc").on("fileuploaded", function (event, data, previewId, index) { 
    var form = data.form, files = data.files, extra = data.extra, 
    response = data.response, reader = data.reader; 
    List.push({ path: response.path, KeyID: previewId }) 
    $("#Doc").val($("#Doc").val() + response.path); 
    //$("#Doc").val(List); 
  });

BootStrap Fileinput上传插件使用实例代码

5、后台上传方法

//上传方法  
public JsonResult Upload() 
    { 
      HttpPostedFileBase file = Request.Files["file"]; 
      if (file == null) 
      { 
        return Json(new { error = "上传异常" }); 
      } 
      var ext = Path.GetExtension(file.FileName); 
      var filename = Path.GetFileNameWithoutExtension(file.FileName); 
      var serverfilenname = Guid.NewGuid().ToString("n") + "_" + filename + ext; 
      try 
      { 
        var path = "/File"; 
        var dic = string.Format("{0}/{1}/{2}/{3}", path, DateTime.Today.Year.ToString(), DateTime.Today.Month.ToString(), DateTime.Today.Day.ToString()); 
        if (!Directory.Exists(Server.MapPath(dic))) 
        { 
          Directory.CreateDirectory(Server.MapPath(dic)); 
        } 
        var webpath = string.Format("{0}/{1}", dic, serverfilenname); 
        var serverpath = Path.Combine(Server.MapPath(dic), serverfilenname); 
        file.SaveAs(serverpath); 
        return Json(new { 
          url = "/Form/uploaddelete",//定义要删除的action,没有用到可删掉 
          key = serverfilenname, 
          path = webpath }); 
      } 
      catch (Exception ex) 
      { 
        return Json(new { error = "上传异常" + ex }); 
      } 
    } 
//删除本地文件方法 
public JsonResult UpLoadDelete() 
    { 
      try 
      { 
        var key = Request.Params["key"]; 
        var path = Request.Params["path"]; 
        if (string.IsNullOrEmpty(key) || string.IsNullOrEmpty(path)) 
        { 
          return Json(false, JsonRequestBehavior.DenyGet); 
        } 
        path = Server.MapPath(path); 
        if (System.IO.File.Exists(path)) 
        { 
          System.IO.File.Delete(path); 
          return Json(true, JsonRequestBehavior.DenyGet); 
        } 
        else 
        { 
          return Json(false, JsonRequestBehavior.DenyGet); 
        } 
      } 
      catch (Exception) 
      { 
        return Json(false, JsonRequestBehavior.DenyGet); 
      } 
    }

6、缺点

尚未研究预览功能

尚有优化空间

7、说明

代码粘贴后可直接使用,后台框架为.net mvc5,默认母版页有加载bootstrap样式和js 如无样式请添加对bootstrap的脚本

引用

插件api地址:http://plugins.krajee.com/file-input#events 

上网查了好多相关资料 都不完整,最后只有这个api可以看了,最后终于找到左上角关闭按钮的回调事件

总结

以上所述是小编给大家介绍的BootStrap Fileinput上传插件使用实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Ext 今日学习总结
Sep 19 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
微信小程序 上传头像的实例详解
Oct 27 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 Javascript
微信接入之获取用户头像的方法步骤
Sep 23 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 Javascript
解决React Native端口号修改的方法
Jul 28 #Javascript
vue+vux实现移动端文件上传样式
Jul 28 #Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 #Javascript
vue使用vue-cli快速创建工程
Jul 28 #Javascript
用JS实现简单的登录验证功能
Jul 28 #Javascript
基于JavaScript实现图片连播和联级菜单实例代码
Jul 28 #Javascript
vue中七牛插件使用的实例代码
Jul 28 #Javascript
You might like
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
树结构之JavaScript
2017/01/24 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
详解vue中axios请求的封装
2019/04/08 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
python exit出错原因整理
2020/08/31 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
土木工程毕业生推荐信
2013/10/28 职场文书
纪检监察建议书
2014/05/19 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
个人先进事迹材料
2014/12/29 职场文书
初中家长意见
2015/06/03 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js