• 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是对文件是否存在进行判断,如果存在则不去保存了

        这就完成了对多文件上传的功能。需要的小伙伴可以看看,有问题可以在评论留言

  • 相关阅读:
    ESX主机修改root密码
    freebsd关闭sendmail服务
    bind9在view情况下通过TSIG key实现nsupdate功能
    freebsd安装perl
    freebsd开启ssh
    bind9在多view情况下通过TSIG key实现主dns和多个辅DNS的同步传输
    (转)linux 系统的虚拟机克隆后出现找不到eth0
    首次发现linux+lamp环境下安装drupal7出现的一个错误。
    freebsd安装bind9.9.1P2
    无法在 vSphere Client 上启用 Update Manager 插件
  • 原文地址:https://www.cnblogs.com/renyuanhao/p/9151987.html
Copyright © 2020-2023  润新知