.net MVC5+EF6+bootstrap搭建框架,从入门到精通(三)——之(Bootstrap Fileinput)多图片上传

.net MVC5+EF6+bootstrap搭建框架,从入门到精通(三)——之(Bootstrap Fileinput)多图片上传

前言废话

人生最大的bug,就是当你有一天以为自己能一目十行,其实你只能看到九行,凑巧漏掉的就相当于《葵花宝典》中的“若不自宫,也能成功”。

.net mvc 实战多图片上传

需要用到的js文件和css文件,后面我会带附件地址的
在这里插入图片描述
前台页面代码


<script type="text/javascript">
    //页面加载后执行下面方法
    $(function () {
    //这是后台接收地址
        var path = "/Home/UploadFile";
        //调用Fileinput控件参数初始化数据fileupload就是下面file标签的id
        initFileInput("fileUpload", path);

    })
    //这是Fileinput初始化方法
    function initFileInput(ctrlName, uploadUrl) {
        var control = $('#' + ctrlName);
        control.fileinput({
            language: 'zh', //设置语言
            uploadUrl: uploadUrl,  //上传地址
            minFileCount: 0,
            uploadAsync: true,
            maxFileCount: 2,
            enctype: 'multipart/form-data',
            maxFileSize: 5120,//限制上传大小KB
            overwriteInitial: true,//不覆盖已上传的图片
            allowedPreviewTypes: ['image', 'html', 'text', 'video', 'audio', 'flash', 'object'],
            allowedFileExtensions: ['jpg', 'png', 'gif'],//可以可选择的违建格式
            // elErrorContainer: '#kv-error-1',//错误显示的文本continner
            showBrowse: true,
            msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
            browseOnZoneClick: true,
            ajaxSettings: {
                contentType: false
            }
        }).on("filepredelete", function (jqXHR) {
            var abort = true;
            if (confirm("确定删除此图片?")) {
                abort = false;
            }
            return abort; // 您还可以发送任何数据/对象,你可以接收` filecustomerror
            })
            //.on('filebatchpreupload', function (event, data) {
            //var n = data.files.length, files = n > 1 ? n + ' files' : 'one file';
            //if (!window.confirm("确定上传选择的文件吗 ?")) {
            //    return {
            //        message: "上传失败!", // upload error message
            //        data: {} // any other data to send that can be referred in `filecustomerror`
            //    };
            //}
            //})
            .on('fileuploaded', function (event, data, id, index) {//上传成功之后的处理
            console.log(data);
            var fname = data.response[0].msg;
            alert(fname);
                out = '<li>' + '文件 # ' + (index + 1) + ' - ' + fname + ' 上传成功!' + '</li>';
            $('#kv-success-1 ul').append(out);
            $('#kv-success-1').fadeIn('slow');
        }).on('filebatchpreupload', function (event, data, id, index) {
            $('#kv-success-1').html('<h4>上传状态</h4><ul></ul>').hide();
        })
    }
</script>

<div class="form-group">
        <label class="col-sm-2 control-label">图片上传:</label>
        <div class="col-sm-4">
            <input id="fileUpload" name="myfile" type="file" data-show-caption="true" multiple="multiple">
            <p class="help-block">支持jpg、jpeg、png格式,大小不超过2.0M</p>
        </div>
    </div>

后台控制器方法


        //获取web.config里面的标签<add key="attachFile" value="../attachmenti/"/>
        string attachFile = ConfigurationManager.AppSettings["attachFile"].Trim();
        //随机数
        Random Rdm = new Random();
        public string UploadFile()
        {
            if (!Directory.Exists(Server.MapPath(attachFile)))//如果不存在就创建file文件夹
            {
                Directory.CreateDirectory(Server.MapPath(attachFile));
            }
            string json = string.Empty;
            var image = Request.Files;
            if (image != null && image.Count > 0)
            {
                var _image = image[0];
                string _imageExt = System.IO.Path.GetExtension(_image.FileName).ToLower();
                string _imageName = DateTime.Now.ToString("yyyyMMddhhmmsssss") + _imageExt;
                //保存
                _image.SaveAs(Server.MapPath(attachFile + _imageName));
                int iRdm = Rdm.Next(0, 100);
                json = "[{\"msg\":\"" + attachFile+iRdm.ToString() + _imageName + "\"}]";
            }
            else
            {
                json = "[{\"error\":\"文件保存失败\"}]";
            }
            return json;
        }

选中后点上传
在这里插入图片描述
好了 多图上传到这可以了,下章是多图上传与表单数据一起提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: nfine是一个使用C#语言的快速开发框架。它提供了一系列的工具和功能,帮助开发人员更加高效地创建和管理.NET应用程序。 首先,nfine提供了一个功能强大的代码生成器,可以根据数据库表格自动生成实体类、业务逻辑层和数据访问层的代码。通过使用代码生成器,开发人员可以节省大量的时间和精力,快速地建立起应用程序的基本框架。 其次,nfine还提供了一套完善的权限管理系统。通过该系统,开发人员可以方便地对用户、角色和权限进行管理,并通过角色的配置控制不同用户的访问权限。这样做可以保证应用程序的安全性,并且对权限的管理也变得更加简单高效。 此外,nfine还提供了一些常用的功能模块,如日志记录、异常处理、任务调度等。这些功能模块可以帮助开发人员更好地管理应用程序的各个方面,并提升应用程序的性能和稳定性。 最后,nfine采用了模块化的设计理念,使得开发人员可以将应用程序拆分成独立的模块进行开发。这种设计方式可以提高开发的灵活性和可维护性,使得团队合作更加容易。 综上所述,nfine快速开发框架是一个功能强大、易于使用的开发工具,它能够帮助开发人员更快地开发出高质量的.NET应用程序。无论是对于个人开发者还是团队开发者来说,nfine都是一个值得尝试的选择。 ### 回答2: nfine是一款快速开发框架,它是基于.NET技术栈的 web 开发框架。该框架具有简单易用的特点,为开发者提供了一套高效快速的开发工具和组件。 首先,nfine提供了一系列的代码生成工具,如代码生成器、表单设计器等,可以帮助开发者快速生成基础代码和界面布局。使用这些工具,开发者只需简单配置相关参数,就能生成带有基本增删改查功能的代码,大大减少了开发时间和人力成本。 其次,nfine内置了丰富的功能模块和扩展组件,如权限管理模块、报表生成器、工作流引擎等,可以满足各种常见的业务需求。这些功能模块和组件可以快速集成到项目中,省去了开发者自行实现的繁琐过程。 此外,nfine采用了模块化开发的架构,每个模块都是独立的,可以独立部署和升级,灵活性很高。开发者可以根据需要选择性地引入和使用某个模块,无需整个框架的依赖。 最后,nfine还提供了完善的技术文档和示例代码,供开发者学习和参考。它的社区活跃度也很高,开发者可以通过社区进行交流和分享,获取帮助和支持。 总体来说,nfine是一款功能强大、易用高效的快速开发框架。它能够帮助开发者快速构建稳定可靠的系统,提高开发效率,减少开发成本。无论是个人开发者还是团队,都能从nfine中获得便利和帮助。 ### 回答3: nfine快速开发框架(Nfine Rapid Development Framework)是一款基于Microsoft.NET平台的快速开发框架。它专注于帮助开发人员快速构建可靠、高效的企业级应用程序。 首先,nfine提供了丰富的模版和代码生成器,使开发人员能够快速生成业务代码。通过简单的配置,可以自动生成各种基础的功能模块,包括用户管理、权限管理、角色管理、部门管理等。这大大节省了开发时间,避免了重复劳动。 其次,nfine具有良好的可扩展性。开发人员可以根据实际需求,通过自定义模版和插件来扩展框架的功能。不论是添加新的业务模块,还是修改现有功能,都可以通过简单的配置和代码编写来实现。 另外,nfine还支持分布式部署和云平台。它可以轻松地与其他系统进行集成,无论是在本地服务器上部署还是在云平台上运行。这为企业提供了更大的灵活性和可扩展性,能够满足各种复杂的环境要求。 此外,nfine还提供了丰富的技术支持和文档资源。开发人员可以通过在线文档和社区论坛获取帮助和解决问题。这使得开发人员能够更好地利用nfine框架进行项目开发,并能够更快地解决遇到的技术难题。 总之,nfine快速开发框架是一款功能强大、易用性高的开发工具。它能够快速生成代码、提供可扩展性、支持分布式部署,并提供全面的技术支持。无论是初学者还是经验丰富的开发人员,都能够通过nfine快速开发框架来提高开发效率、降低开发成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值