MVC进行多文件上传
用mvc做多文件的上传和保存到本地,大致流程就是,前台通过form表单提交多文件,Controller接受到文件流,将文件流保存到本地 然后将保存地址 存到数据库中。
将文件通过from提交
<form name="form1" method="post" action="地址" id="form1" multiple="multiple" enctype="multipart/form-data">
<input type="file" name="upload_fujian" class="upload_fujian" multiple="multiple" />
</form>
html代码
$('.upload_fujian').change(
function () {
var files = $(this)[0].files;
for (var i = 0, f; f = files[i]; i++) {
if (f.size < 2 * 1024 * 1024) {
//如果需要自动提交表单,可以使用下面的这行代码,否者就等到用户点击按钮再上传文件
//$('.upload_media').parent().submit();
} else {
alert(f.name + '文件超出上传大小限制!');
}
}
}
)
js代码,主要是控制文件上传的大小,也可以进行自己处理文件的属性
public ActionResult Noticeadd(FormCollection form1) {
HttpFileCollectionBase file_ = Request.Files;
for (int i = 0; i < file_.Count; i++)
{
//文件大小
long size = file_[i].ContentLength;
//文件类型
string type = file_[i].ContentType;
//文件名
string name = file_[i].FileName;
string _tp = System.IO.Path.GetExtension(name);
if (_tp.ToLower() == ".xls" || _tp.ToLower() == ".doc" || _tp.ToLower() == ".docx" || _tp.ToLower() == ".pdf" || _tp.ToLower() == ".png" || _tp.ToLower() == ".jpg")
{
string saveName = DateTime.Now.ToString("yyyyMMdd");
string file = "\\Areas\\gonggao\\fujian\\" + saveName + "\\";
string path = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
DirectoryInfo dirInfo = new DirectoryInfo(path);
dirInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;
}
file_[i].SaveAs(path + name);
//file + name 为文件名可以保存至数据库,我这里是测试,直接返回到前台了
} } return view();
}
控制器中传来的值 form1 为表单提交来的数据,file_为文件流,下面用for循环将多个文件存到本地,可以去控制文件后缀名来控制文件上传的格式,然后创建文件夹去保存文件,下来对值进行介绍
_tp 为文件后缀名
savename 获取时间创建文件夹名称
file 为文件夹路径(相对路径)
path 为程序文件地址夹+文件夹路径(绝对路径)
上面代码中第一个if是对文件后缀进行筛选,第二个if是对文件是否存在进行判断,如果存在则不去保存了
这就完成了对多文件上传的功能。需要的小伙伴可以看看,有问题可以在评论留言
MVC进行多文件上传的更多相关文章
- MVC中的文件上传-小结
web开发中,文件的上传是非常基本功能之一. 在asp.net中,通常做法是利用webservice 来接收文件请求,这样做的好处就是全站有了一个统一的文件上传接口,并且根据网站的实际情况,可以将we ...
- [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...
- 关于我使用spring mvc框架做文件上传时遇到的问题
非常感谢作者 原文:https://blog.csdn.net/lingirl/article/details/1714806 昨天尝试着用spring mvc框架做文件上传,犯了挺多不该犯的毛病问题 ...
- ASP.NET MVC下使用文件上传
这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3. 根目录下添加新 ...
- asp.net.mvc 的单文件上传和多文件上传的简单例子
首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板
- spring mvc中的文件上传
使用commons-fileupload上传文件所需要的架包有:commons-fileupload 和common-io两个架包支持,可以到Apache官网下砸. 在配置文件spring-mvc.x ...
- jquery ajax file upload NET MVC 无刷新文件上传
网上有各种各样的文件上传方法,有基于JS框架的.也有基于flash swf插件的. 这次分享一个比较简单而且实用能快速上手的文件上传方法,主要步骤: 1.引用Jquery包,我用的是jquery-1. ...
- spring mvc 简单的文件上传与下载
上传文件有很多种方法,这里主要讲解的是spring mvc内提供的文件上传 前提使用:spring mvc 在这个之前我们需要把环境给配置好 1:springmvc的XML配置文件加上这一段就即可, ...
- 项目总结——MVC+MongoDB实现文件上传
在做项目的时候我们遇到了视频上传的问题.正式开始项目之前做了一个简单的Demo实现在MVC中视频文件的上 传,考虑到将视频放到MongoDB中上传和读取速度慢的问题,这次我们实现的文件上传是存储的路径 ...
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
作者:ssslinppp 1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...
随机推荐
- MySQL性能优化的20+条经验
1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...
- 关于建立Android工程R文件丢失的问题
今天开始学习Android了,好久没打开eclipse,建立Android工程老是报错,于是手残的把appcompat-v7给删了,然后建立工程以后重新出来的appcompat-v7有个小叉号,百度了 ...
- 【Udacity】线性回归方程 Regression
Concept in English Coding Portion 评估回归的性能指标--R平方指标 比较分类和回归 Continuous supervised learning 连续变量监督学习 R ...
- SVNKit学习——基于Repository的操作之print repository tree、file content、repository history(四)
此篇文章同样是参考SVNKit在wiki的官方文档做的demo,每个类都可以单独运行.具体的细节都写到注释里了~ 开发背景: SVNKit版本:1.7.14 附上官网下载链接:https://www. ...
- js计算时间差(天,小时,分钟,秒)
<script type="text/javascript"> var date1= '2015/05/01 00:00:00'; //开始时间 var date2 = ...
- sql语句浅谈以及mysql遇到的问题解决见解
mysql数据库基本操作: .显示数据库和查看mysql版本 show databases; select version(); select user();查看用户 .选择数据库 use 数据库名; ...
- 沉淀,再出发:Maven的使用和规范
沉淀,再出发:Maven的使用和规范 一.前言 Maven作为项目管理工具,在一个大型项目开发的每个阶段都有着很大的用处,为什么需要这个东西呢,还是为了消除不确定性,统一化管理,正如我们做的每一件事其 ...
- 网站渗透常用到的Python小脚本
0×00渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小使用,求欣赏,求好评. 0×01记录root密码小工具 root.py ...
- linux 安装pip 和python3
前言: python3应该是python的趋势所在,当然目前争议也比较大,这篇随笔的主要目的是记录在linux6.4下搭建python3环境的过程 以及碰到的问题和解决过程. 另外,如果本机安装了py ...
- 记两个std接口equal_range,set_difference
1.equal_range equal_range是C++ STL中的一种二分查找的算法,试图在已排序的[first,last)中寻找value,它返回一对迭代器i和j,其中i是在不破坏次序的前提下, ...