分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

MVC进行多文件上传

发布时间:2023-09-06 01:58责任编辑:彭小芳关键词: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进行多文件上传

原文地址:https://www.cnblogs.com/renyuanhao/p/9151987.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved