服务器之家

服务器之家 > 正文

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

时间:2020-03-12 12:23     来源/作者:hyyweb

需要下载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");
}

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

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部