.net 批量上传文件 遍历文件

上传文件,可以批量上传

在前台创建选择文件控件:

1 <asp:FileUpload runat="server" ID="fupd" AllowMultiple="true" OnDataBinding="fupd_DataBinding"  />

然后写一个触发按钮,按钮的事件为:

 1         private void UploadImportFile()
 2         {
 3             HttpFileCollection files = HttpContext.Current.Request.Files;
 4             var fileList = files.GetMultiple("fupd");
 5             for (int ifile = 0; ifile < fileList.Count; ifile++)
 6             {
 7 
 8                 HttpPostedFile postedfile = fileList[ifile];
 9                 string filename, fileExt;
10                 filename = System.IO.Path.GetFileName(postedfile.FileName);    //获取文件名
11                 fileExt = System.IO.Path.GetExtension(filename);    //获取文件后缀
12                 int MaxAllowUploadFileSize = 100000;    //定义允许上传文件大小
13                 string allowexts = "xls|xlsx";      //定义允许上传文件类型
14                 Regex allowext = new Regex(allowexts);
15                 if (postedfile.ContentLength < MaxAllowUploadFileSize && allowext.IsMatch(fileExt)) //检查文件大小及扩展名
16                 {
17                     postedfile.SaveAs(Server.MapPath("~/ImportBaseInfo/" + filename));    //upload为与本页面同一目录,可自行修改
18                 }
19                 else
20                 {
21                     Response.Write("<script>alert('不允许上传类型" + fileExt + "。)</script>");
22                 }
23             }
24         }

应该是要引用using System.Web;

根据红色报错提示去引用吧,嘻嘻嘻嘻

 

然后就读取upload文件夹内的文件:

 

 1 protected void btnImport_Click(object sender, EventArgs e)
 2         {
 3             UploadImportFile(); //将选择文件先上传至ImportBaseInfo文件夹
 4             string resultStr = "";
 5             string filePath = Server.MapPath("~/ImportBaseInfo/");
 6                 DirectoryInfo root = new DirectoryInfo(filePath);
 7                 FileInfo[] files = root.GetFiles();  //返回当前目录的文件列表
 8                 
 9                 foreach (FileInfo f in files)
10                 {
11                     string name = f.Name;
12                     string Extension = f.Extension;
13                     string fullName = f.FullName;
14                     //获取文件上传创建时间
15                     DateTime createTime = f.LastWriteTime;
16                     DateTime today = DateTime.Now;
17                     //只遍历今天上传的文件
18                     if(today.Date==createTime.Date)
19                 {
20                     if (Extension != ".xls" && Extension != ".xlsx")
21                     {
22                         MessageBox.Show(this, "您导入的\"" + name + "\"文件不正确,请确认后重试!");
23                         return;
24                     }
25      /*这里写你需要的操作们*/
26                 }
27 
28            //导入后删除服务器上的文件,以免下次导入时遍历所有的文件
29             //string[] filePaths = Directory.GetFiles(filePath);  
30             //foreach (string filepath in filePaths)
31             //{
32             //    File.Delete(filepath);
33             //}
34 
35            }
36         }

 

可以每次都删除这个文件夹的东西,以免下次遍历的时候浪费时间。

也可以根据文件的时间去筛选一下。

哎,我只有这种笨笨的方法了 希望对你有帮助呢/(ㄒoㄒ)/~~

 

posted on 2021-12-30 16:04  张不胖  阅读(312)  评论(0编辑  收藏  举报

导航