本文主要介绍一下,在APS.NET中文件的简单上传于下载,上传是将文件上传到服务器的指定目录下,下载是从存入数据库中的路径,从服务器上下载。

  1.上传文件

  (1)页面代码

   <table align="center" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="right">文件名称:</td>
<td>
<asp:TextBox ID="FileName" runat="server"></asp:TextBox>
</td>
<td></td>
</tr>
<tr>
<td align="right">浏览:</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="UploadButton" runat="server" Text="上传"
onclick="UploadButton_Click" /><asp:Label ID="Msg" runat="server" ForeColor="#FF0000"></asp:Label>
</td>
<td></td>
</tr>
</table>

  (2).后台代码  

protected void UploadButton_Click(object sender, EventArgs e)
{
Msg.Text = "";
MyWebSite.DAL.FileInfo file = new MyWebSite.DAL.FileInfo();
if (string.IsNullOrEmpty(FileName.Text))
{
Msg.Text = "请输入文件名";
return;
}
if (FileUpload1.HasFile)
{
try
{ DateTime upload = DateTime.Now;
string flag = Path.GetExtension(FileUpload1.PostedFile.FileName);
string path = Server.MapPath("../Upload/" + FileUpload1.FileName);
string size = (FileUpload1.PostedFile.ContentLength / 1024).ToString();
FileUpload1.SaveAs(path);
file.FileName = FileName.Text.ToString();
file.Type = flag;//获得文件格式
file.Size = size;//文件大小
file.FilePath = path;//上传到服务器的绝对路径
file.UploadTime = DateTime.Now.ToShortDateString();//上传时间
handler.AddFile(file);//将上传的文件信息保存到数据库
Msg.Text = "上传成功!";
}
catch
{ Msg.Text = "上传失败!";
}
}
}

  2.下载文件

  (1)前台页面

<asp:Repeater ID="Repeater1" runat="server" onitemcommand="down_file_Click">
<ItemTemplate>
<table width="90%" align="center" border="1" cellpadding="1" cellspacing="0" bgcolor="#e1e1e1" class="title_font">
<tr>
<td class="title_font" width="10%" align="center">文件名称:</td>
<td width="20%"align="center"><b><asp:Label ID="FileTitle" runat="server" Text='<%#Eval("文件名称") %>'></asp:Label></b></td>
<td width="6%"align="center">类型:</td>
<td width="6%"align="center"><%#Eval("类型") %></td>
<td width="10%" align="center">文件大小:</td>
<td width="8%"align="center"><%#Eval("文件大小") %>KB</td>
<td width="10%"align="center">上传时间:</td>
<td ><%#Eval("上传时间") %></td>
<td width="10%" colspan="2" align="center"><asp:LinkButton ID="LinkButton1" CommandArgument='<%#Eval("link") %>' runat="server">下载文件</asp:LinkButton>
</td>
</tr>
</table>
<br />
</ItemTemplate>
</asp:Repeater>

  (2)后台代码

  1).绑定数据

        public void GrvDataBin(List<FileInfo> list)
{ DataView dv = new DataView();
DataTable dt = new DataTable("fileMeta");
{
dt.Columns.Add("文件名称");
dt.Columns.Add("类型");
dt.Columns.Add("上传时间");
dt.Columns.Add("文件大小");
dt.Columns.Add("link");
}
foreach (FileInfo fileM in list)
{
DataRow row = dt.NewRow();
row[0] = fileM.FileName;
row[1] = fileM.Type;
row[2] = fileM.UploadTime;
row[3] = fileM.Size;
row[4] = fileM.FilePath;
dt.Rows.Add(row);
}
dv.Table = dt;
Repeater1.DataSource = dv;
Repeater1.DataBind(); }

  2).下载文件

  

protected void down_file_Click(object sender, RepeaterCommandEventArgs e)
{
System.IO.FileStream fs = null;
try
{
string filePath = e.CommandArgument.ToString();
string fileName = ((Label)e.Item.FindControl("FileTitle")).Text.ToString();
fs = System.IO.File.OpenRead(filePath);
byte[] buffer = new byte[1024];
long count = 1024;
Response.Buffer = true;
Response.AddHeader("Connection", "Keep-Alive");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(System.IO.Path.GetFileName(filePath)));//下载时要保存的默认文件名
Response.AddHeader("Content-Length", fs.Length.ToString());
while (count == 1024)
{
count = fs.Read(buffer, 0, 1024);
Response.BinaryWrite(buffer);
} }
catch (Exception ex)
{
return;
}
finally
{
fs.Close();
}
}

  以上就完成了,简单的文件上传与下载。 

C# 本地文件的上传和下载的更多相关文章

  1. Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载

    Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务 ...

  2. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...

  3. SecureCRT使用sz和rz命令进行文件的上传和下载

    SecureCRT可以使用sz和rz命令进行文件的上传和下载. sz文件下载: 格式:sz 文件名称 即可将服务器的文件下载至本地. rz文件上传: 格式:rz 文件名称 即可将本地文件上传至服务器. ...

  4. 使用FTPClient进行文件服务器内文件的上传和下载

    我用的FTPClient是由Apache组织的commons-net.jar包中的API,这个包用起来非常的方便,很容易上手.我在项目开发的过程中主要用到了文件的上传和下载功能,下面将我开发的代码贴出 ...

  5. iOS开发中文件的上传和下载功能的基本实现-备用

    感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传 ...

  6. Apache FtpServer 实现文件的上传和下载

    1 下载需要的jar包 Ftp服务器实现文件的上传和下载,主要依赖jar包为: 2 搭建ftp服务器 参考Windows 上搭建Apache FtpServer,搭建ftp服务器 3 主要代码 在ec ...

  7. 初学Java Web(7)——文件的上传和下载

    文件上传 文件上传前的准备 在表单中必须有一个上传的控件 <input type="file" name="testImg"/> 因为 GET 方式 ...

  8. Javaweb之文件的上传与下载

    Javaweb之文件的上传与下载 一.基于表单的文件上传 如果在表单中使用表单元素 <input type=“file” />,浏览器在解析表单时,会自动生成一个输入框和一个按钮,输入框可 ...

  9. linux上文件的上传和下载

    现整理一篇linux上文件的上传和下载 第一种方式就是在windos上安装工具 如: 工具如何使用我就不赘述了,easy 第二种方式就是使用liux的命令(首先是文件上传) 上传文件(首先创建文件夹如 ...

随机推荐

  1. Windows 安装 mysql-5.7.12-winx64(CommunityServer) 备忘

    下载后文件名 mysql-5.7.12-winx64.msi 以为还是会和以往一样,一路next傻瓜式安装并完成设置,然后启动运行,但实际情况不是,感觉就是一解压过程,然后点击The MySQL Co ...

  2. 反欺诈(Fraud Detection)中所用到的机器学习模型

    反欺诈应用的机器模型算法,多为二分类算法. 1.gbdt梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法,该算法的性能高,且在各类数据挖掘中应用广泛,表现 ...

  3. 封闭解(Closed-form solution)、解析解(Analytical solution)、数值解(Numerical solution) 释义

    转俞夕的博客 (侵删) 1 解析解 解析解(Analytical solution) 就是根据严格的公式推导,给出任意的自变量就可以求出其因变量,也就是问题的解,然后可以利用这些公式计算相应的问题.所 ...

  4. oracle 多表连接查询 join(一)

    一.简介: 多表连接查询通过表之间的关联字段,一次查询多表数据. 下面将依次介绍 多表连接中的如下方法: 1.from a,b 2.inner join 3.left outer join 4.rig ...

  5. 51nod1445(最短路)

    题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445 题意: 中文题诶~ 思路: 可以将每种颜色看作一个节点 ...

  6. 洛谷 P4297 [NOI2006]网络收费

    P4297 [NOI2006]网络收费 题目背景 noi2006 day1t1 题目描述 网络已经成为当今世界不可或缺的一部分.每天都有数以亿计的人使用网络进行学习.科研.娱乐等活动.然而,不可忽视的 ...

  7. bzoj3140: [Hnoi2013]消毒(二分图)

    题目描述 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为a*b*c,a.b.c 均为正整数.为了实验的方便,它被划分为a*b*c个单位立方体区 ...

  8. vee-validate使用教程

    vee-validate使用教程 *本文适合有一定Vue2.0基础的同学参考,根据项目的实际情况来使用,关于Vue的使用不做多余解释.本人也是一边学习一边使用,如果错误之处敬请批评指出* 一.安装 n ...

  9. 2019.2.14 考试T3 交互题

    \(\color{#0066ff}{ 题目描述 }\) 由于机房被成功拯救了,花_Q很高兴,花_Q生成了一个 0 到 N - 1 的排列(排列的下标从 0 到 N - 1 ).保证排列中 0 在 N ...

  10. 16.Shortest Unsorted Continuous Subarray(最短未排序子数组)

    Level:   Easy 题目描述: Given an integer array, you need to find one continuous subarray that if you onl ...