Bootstrap FileInput插件上传图片和文件

步骤:

1、引入所需的css文件和js文件(可以从https://github.com/kartik-v/bootstrap-fileinput下载相关的js文件)

<link href="~/js/plugins/bootstrap_fileInput/css/fileinput.css" rel="stylesheet" />
<script src="~/js/plugins/bootstrap_fileInput/fileinput.js"></script>
<script src="~/js/plugins/bootstrap_fileInput/locales/zh.js"></script>

2、HTML:

 <form enctype="multipart/form-data">
     <input id="file-file" class="file" type="file" multiple>
 </form>
//multiple表示支持多个上传

3、JS:

function initFileInput(ctrlName, uploadUrl) {
            var control = $('#' + ctrlName);
            control.fileinput({
                resizeImage: true,
                resizePreference: 'width',
                language: 'zh', //设置语言
                uploadUrl: uploadUrl,//上传地址
                uploadAsync: true,
                allowedFileExtensions: ['jpg', 'png', 'gif'], //接收的文件后缀
                showUpload: true, //是否显示上传按钮
                showCaption: true, //是否显示标题
                browseClass: "btn btn-primary", //按钮样式
                previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
                maxFileCount: 10,//上传的最多文件数为10
                msgFilesTooMany: "选择图片超过了最大数量"
            });
        };

        //初始化控件initFileInput(id,uploadurl)控件id,与上传路径

        initFileInput("file-file", "/Site/UpLoadImage");
  //处理上传的返回结果
  $("#file-file").on("fileuploaded",
            function(event, data) {
                if (data.response) {
                   // 根据上传的返回值,按需处理
                }
            });

4、后台上传代码(C#):

        /// <summary>
        /// 上传图片
        /// </summary>
        /// <returns></returns>

        public JsonResult UpLoadImage()
        {
            var files = Request.Files;
            if (files != null && files.Count > 0)
            {
                try
                {
                    var file = files[0];
                    if (file?.ContentLength > 0 && file.ContentType.Contains("image/"))
                    {
                        var strPath = @"~/SysFiles/Images/" + DateTime.Now.ToString("yyyyMMdd") + "/";
                        //本地调试过程中,以下代码需注释,
                        //if (!Directory.Exists(strPath))
                        //{
                        //    //需要注意的是,需要对这个物理路径有足够的权限,否则会报错 
                        //    Directory.CreateDirectory(strPath);
                        //}

                        var thisFileName = file.FileName;
                        var thisFilePath = Server.MapPath(strPath) + thisFileName;
                        file.SaveAs(thisFilePath);//此处保存成功,则视为上传成功
                        return Json("UpLoadOk");
                    }
                    return Json("UpLoadError");
                }
                catch (Exception e)
                {
                    return Json(ex.Message);
                }
            }
            return Json("NoFILE");
        }

5、总结:

  • 实际操作中图片上传成功后会报错,前台js没有处理上传以后的操作,忽略了下面的部分
   $("#file-file").on("fileuploaded",
       function(event, data) {
           if (data.response) {
               //按需书写
           }
    });
  • 需注意该插件要求返回的值是json类型的,如果后台返回的结果是string或者无返回值类型,该插件会报错,谨记。

参考网站:

官网:http://plugins.krajee.com/file-input#event-manipulation

Github: https://github.com/kartik-v/bootstrap-fileinput

Jquery插件库:http://www.jq22.com/jquery-info5231

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值