bootstrap fileinput+MVC 上传多文件,保存
新增用户资料,需要用户上传多笔附件,所以就尝试用了fileinput控件,显示效果如图:

首先,先在model中定义数据模型:
public partial class create
{
[Required]
[Display(Name = "附件")]
public HttpPostedFileBase[] attach { get; set; }
}
视图中定义控件:
<div class="form-group">
@Html.LabelFor(m => m.attach, new { @class = "col-sm-3 control-label" })
<div class="col-sm-7">
@Html.TextBoxFor(model => model.attach, new { type = "file", multiple = "multiple", accept = "application/msword,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document" })
@Html.ValidationMessageFor(m => m.attach, "", new { @class = "text-danger" })
</div>
</div>
该控件的类型是multiple,可以选择多个文件;accept属性是可选择的文件类型,这里我们要去只能选择doc docx pdf ,需支持其他类型的可自行百度;ValidationMessageFor是必填
js中调用该控件:
var url = rootUrl + "attachment/upload";
$("#attach").fileinput({
theme: "explorer", //主题
language: 'zh',
uploadUrl: url,// 上传请求路径
allowedFileExtensions : ["pdf", "doc","docx"],//允许上传的文件后缀
showUpload: false,//是否显示上传按钮
showCaption: false,//是否显示容器
dropZoneEnabled: false,//是否显示拖拽区域
removeFromPreviewOnError: true,//是否移除校验文件失败的文件
layoutTemplates: {
actionUpload: '', //取消上传按钮
actionZoom: '' //取消放大镜按钮
},
showPreview: true, //显示预览
minFileCount: 1, //最低文件数量
//maxFileCount: 3, //最多文件数量
maxFileSize: 1024*2, //允许文件上传大小
overwriteInitial: false,
previewFileIcon: '<i class="fa fa-file"></i>',
initialPreviewAsData: true, // defaults markup
preferIconicPreview: true, // 是否优先显示图标 false 即优先显示图片
previewFileIconSettings: { // configure your icon file extensions
'doc': '<i class="fa fa-file-word-o text-primary"></i>',
'docx': '<i class="fa fa-file-word-o text-primary"></i>',
'xls': '<i class="fa fa-file-excel-o text-success"></i>',
'xlsx': '<i class="fa fa-file-excel-o text-success"></i>',
'ppt': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>',
'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
'htm': '<i class="fa fa-file-code-o text-info"></i>',
'txt': '<i class="fa fa-file-text-o text-info"></i>',
'mov': '<i class="fa fa-file-movie-o text-warning"></i>',
'mp3': '<i class="fa fa-file-audio-o text-warning"></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>'
}
});
上传的url就是点击Upload按钮调用的方法,我们没有使用这个url,我们是在提交之后再上传的,所以可以忽略上传
页面提交保存后台:
[HttpPost]
[ValidateInput(false)]
[ValidateAntiForgeryToken]
[UIExceptionResult]
public ActionResult attachment_create(create model)
{
if (ModelState.IsValid)
{ string uploadPath = Server.MapPath(string.Format("~\\upload\\{0}\\", DateTime.Now.ToString("yyyyMMdd")));
string savePath = string.Format("/upload/{0}/", DateTime.Now.ToString("yyyyMMdd"));
if (Directory.Exists(uploadPath) == false)
{
Directory.CreateDirectory(uploadPath);
}
if (model.attch != null && model.attch.Count() > )
{
for (int i = ; i < model.attch.Count(); i++)
{
var _file = model.attch[i];
string _imageName = DateTime.Now.Ticks.ToString() + System.IO.Path.GetExtension(_file.FileName);
var path = uploadPath + _imageName;
//保存
_file.SaveAs(path);
} }
return View(model);
}
bootstrap fileinput+MVC 上传多文件,保存的更多相关文章
- .Net mvc 上传多文件
.net mvc 上传多文件有很多种方式,我的方法只是其中一种, 仅供参考,我主要是注重参数传递的过程,后面文件保存的地方省略.. 调试环境 vs2017 控制器代码: [HttpPost] publ ...
- asp.net mvc 上传下载文件的几种方式
view: <!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu ...
- spring mvc上传下载文件
前端jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...
- bootstrap fileinput添加上传成功回调事件
国外牛人做的bootstrap fileinput挺酷的,但是可惜没有提供自定义上传成功回调事件的接口,因此感到非常头疼,但是很幸运的是,我在网上搜索到一个提问帖子,它问到使用Jquery的on函数绑 ...
- ASP.NET MVC 上传大文件时404
前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传. 后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M ...
- asp.net core mvc上传大文件解决方案
默认上传文件大小不超过30M 第一个问题: IIS 10.0 详细错误 - 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 服务器上的请求筛选被配置为拒绝该请求 ...
- MVC上传(单文件)
后台代码: public ActionResult upload() { //获取文件对象 var file = Request.Files[0]; string suffix/*文件格式*/ = S ...
- mvc 上传大文件
<configuration> <system.web> <httpRuntime maxRequestLength="204800" useFull ...
- jquery.form.js mvc 上传文件 layer 选择框与等待效果
HTML <form role="form" id="form1"> <div class="form-group"> ...
随机推荐
- 也谈ObjectARX多版本批量编译
也谈ObjectARX多版本批量编译 by edata 2017-12-10 因某些原因,我的电脑系统依旧是windows XP,所以能安装的vs最高版本是vs2010,以下均在vs2010上实现,其 ...
- c语言数据结构学习心得——图
图G由顶点集V和边集E组成,记为G=(V,E) 图不可为空,一定有顶点集不为空 有向图:有向边(弧)的有限集合 无向图:无向边的有限集合 连通:顶点V到顶点V'有路径 连通分量:无向图中的极大连通子图 ...
- 了解一个名词——GTD
概念:就是Getting Things Done的缩写,翻译过来就是“把事情做完”,是一个管理时间的方法. 核心理念概括:就是必须记录下来要做的事,然后整理安排并使自己一一去执行. 五个核心原则是:收 ...
- vue is detected
Vue.js is detected on this page. Devtools inspection is not available because it's in production mod ...
- 基于linux内核包过滤技术的应用网关
目录 基于linux内核包过滤技术的应用网关 硬件形态 基本原理 应用场景 主要功能 其他功能 客户定制 基于linux内核包过滤技术的应用网关 硬件形态 基本原理 应用场景 媒体内容过滤和深度识别 ...
- 【语义分割】PSPNet中PSP模块的pytorch实现
github地址:https://github.com/Lextal/pspnet-pytorch/blob/master/pspnet.py PSP模块示意图如下 代码如下 class PSPMod ...
- redux超易学三篇之二(开始使用react-redux)
其实 redux 真正让人感到混乱的还是在 react-redux 的使用中. 请配合完整代码参考~:完整源代码 也不是说混乱,主要是网上 推崇 最佳实践.学习一个新东西的时候,本来就很陌生,上来就用 ...
- Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement
原因: 此异常的原因是由于mapper接口编译后在同一个目录下没有找到mapper映射文件而出现的.由于maven工程在默认情况下src/main/java目录下的mapper文件是不发布到targe ...
- 【算法笔记】B1046 划拳
1046 划拳 (15 分) 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输 ...
- HDU 6301 (贪心+优先队列)
题目大意: 求一个长度为n的数列, 给出m个区间,这m个区间各自区间内的数不同 题解: 用优先队列来模拟过程 , 解题思路是想到了 , 可是不知道如何实现 , 果然还须继续努力呀 这道题思路是去掉重复 ...