ASP.NET实现大文件上传功能

时间:2022-12-07 09:56:30

需要下载NeatUpload插件

上传页面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="_Default" %>
 
<%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.NeatUpload"
  TagPrefix="Upload" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
   <link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />
  <link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" />
  <script src="easyui/jquery.min.js" type="text/javascript"></script>
  <script src="easyui/jquery.easyui.min.js" type="text/javascript"></script>
</head>
<body>
  <form id="form1" runat="server">
  <div class="easyui-panel" style="padding:5px;">
    <Upload:ProgressBar ID="ProgressBar1" runat='server'>
    </Upload:ProgressBar>
   <br />
  <Upload:InputFile ID="AttachFile" runat="server" />
  <br />
  <br />
  <asp:LinkButton ID="BtnUP" runat="server" class="easyui-linkbutton" data-options="iconCls:'icon-add'" onclick="BtnUP_Click">上 传</asp:LinkButton><br /><br />
  <a href="Down.aspx">查看下载</a>
  </div>
  </form>
</body>
</html>

后台源码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
protected void BtnUP_Click(object sender, EventArgs e)
  {
    if (AttachFile.HasFile)
    {
      string FileName = this.AttachFile.FileName;//获取上传文件的文件名,包括后缀
      string ExtenName = System.IO.Path.GetExtension(FileName);//获取扩展名
      string SaveFileName = System.IO.Path.Combine(System.Web.HttpContext.Current.Request.MapPath("UpLoads/"), DateTime.Now.ToLongDateString().ToString() + "-" + FileName);//合并两个路径为上传到服务器上的全路径
      AttachFile.MoveTo(SaveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);
      string url = "UpLoads/" + DateTime.Now.ToString("yyyyMMddhhmmss") + ExtenName; //文件保存的路径
      float FileSize = (float)System.Math.Round((float)AttachFile.ContentLength / 1024000, 1); //获取文件大小并保留小数点后一位,单位是M
      Response.Write("<script>alert('恭喜您,上传成功!')</script>");
    }
    else
    {
      Response.Write("<script>alert('请选择文件!')</script>");
    }
  }

这里直接获取上传文件夹文件名称提供下载

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Down.aspx.cs" Inherits="Down" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
  <link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />
  <link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" />
  <script src="easyui/jquery.min.js" type="text/javascript"></script>
  <script src="easyui/jquery.easyui.min.js" type="text/javascript"></script>
  <style type="text/css">
    .div_style ul li
    {
       list-style-type: decimal;
       border-bottom:1px dashed #E3E3E3;
       margin-bottom:5px;
    }
    .div_style ul li a
    {
      text-decoration: none;
      cursor: pointer;
      font-size: 16px;
    }
  </style>
</head>
<body>
  <form id="form1" runat="server">
  <div class="div_style easyui-panel" style="padding: 5px;">
  <a href="index.aspx">上传文件</a>
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    <ul id="www_zzjs_net">
      <%if (files.Length == 0) { Label1.Text = "暂无文件"; }
       else
       {
 
         foreach (System.IO.FileInfo item in files)
         {%>
      <li><a href="Default2.aspx?1=<%=item%>">
        <%=item %></a>     <a href="delete.aspx?1=<%=item%>" onclick="javascript:return confirm('确定删除吗?');" >删除附件</a>
      </li>
      <% }
     }%>
    </ul>
  </div>
  <div id="changpage"></div>
  <%--js分页--%>
<%--<script language="javascript">
  var obj, j;
  var page = 0;
  var nowPage = 0; //当前页
  var listNum = 25; //每页显示<ul>数
  var PagesLen; //总页数
  var PageNum = 4; //分页链接接数(5个)
  onload = function () {
    obj = document.getElementById("www_zzjs_net").getElementsByTagName("li");
    j = obj.length
    PagesLen = Math.ceil(j / listNum);
    upPage(0)
  }
  function upPage(p) {
    nowPage = p
    //内容变换
    for (var i = 0; i < j; i++) {
      obj[i].style.display = "none"
    }
    for (var i = p * listNum; i < (p + 1) * listNum; i++) {
      if (obj[i]) obj[i].style.display = "block"
    } //欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
    //分页链接变换
    strS = '<a href="###" onclick="upPage(0)">首页</a> '
    var PageNum_2 = PageNum % 2 == 0 ? Math.ceil(PageNum / 2) + 1 : Math.ceil(PageNum / 2)
    var PageNum_3 = PageNum % 2 == 0 ? Math.ceil(PageNum / 2) : Math.ceil(PageNum / 2) + 1
    var strC = "", startPage, endPage;
    if (PageNum >= PagesLen) { startPage = 0; endPage = PagesLen - 1 }
    else if (nowPage < PageNum_2) { startPage = 0; endPage = PagesLen - 1 > PageNum ? PageNum : PagesLen - 1 } //首页
    else { startPage = nowPage + PageNum_3 >= PagesLen ? PagesLen - PageNum - 1 : nowPage - PageNum_2 + 1; var t = startPage + PageNum; endPage = t > PagesLen ? PagesLen - 1 : t }
    for (var i = startPage; i <= endPage; i++) {
      if (i == nowPage) strC += '<a href="###" style="color:red;font-weight:700;" onclick="upPage(' + i + ')">' + (i + 1) + '</a> '
      else strC += '<a href="###" onclick="upPage(' + i + ')">' + (i + 1) + '</a> '
    } //欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
    strE = ' <a href="###" onclick="upPage(' + (PagesLen - 1) + ')">尾页</a> '
    strE2 = nowPage + 1 + "/" + PagesLen + "页" + " 共" + j + "条"
    document.getElementById("changpage").innerHTML = strS + strC + strE + strE2
  }
</script>--%>
  </form>
</body>
</html>
 
//下面是后台代码
public FileInfo[] files { set; get; }
protected void Page_Load(object sender, EventArgs e)
{
string dirPath = HttpContext.Current.Server.MapPath("~/UpLoads");
if (Directory.Exists(dirPath))
{
DirectoryInfo dir = new DirectoryInfo(dirPath);
files = dir.GetFiles("*.*");
}
if (files.Length == 0) { Label1.Text = "暂无文件"; }
}
 
 
 
//这是新建另一个页面提供下载的代码
 
if (Request.QueryString["1"] != null)
{
 
 
string _filename = Request.QueryString["1"].ToString(), _filepath = System.IO.Path.Combine(MapPath("~/UpLoads"), _filename);
if (System.IO.File.Exists(_filepath))
{
Response.Clear();
Response.Buffer = true;
 
Response.AddHeader("Content-Disposition", "attachment;filename=" + _filename);
Response.ContentType = "application/unknow";
Response.TransmitFile(_filepath);
Response.End();
}
}
 
 
 
//这是新建另一个页面提供删除操作(后台)
 
string _filename = Request.QueryString["1"].ToString(), _filepath = System.IO.Path.Combine(MapPath("~/UpLoads"), _filename);
if (System.IO.File.Exists(_filepath))
{
File.Delete(_filepath);
Response.Write("<script language=javascript>alert('删除成功!');window.location = 'Down.aspx';</script>");
//Response.Redirect("Down.aspx");
}

以上就是本文的全部内容,希望对大家的学习有所帮助。