ASP.NET 文件上传于下载
本文主要介绍一下,在APS.NET中文件的简单上传于下载,上传是将文件上传到服务器的指定目录下,下载是从存入数据库中的路径,从服务器上下载。
1.上传文件
(1)页面代码
<table align="center" cellpadding="" cellspacing="" 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 / ).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="" cellpadding="" cellspacing="" 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="" 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[] = fileM.FileName;
row[] = fileM.Type;
row[] = fileM.UploadTime;
row[] = fileM.Size;
row[] = 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[];
long count = ;
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 == )
{
count = fs.Read(buffer, , );
Response.BinaryWrite(buffer);
} }
catch (Exception ex)
{
return;
}
finally
{
fs.Close();
}
}
以上就完成了,简单的文件上传与下载。
ASP.NET 文件上传于下载的更多相关文章
- ASP.NET文件上传和下载
大学最近作出相关的需求进行上传和下载文件的网站(求为:站点发布的通知,在后台要能给每一个通知加入附件.在前台要能显示并下载附件),之前仅仅是学习过关于上传的 理论知识,这里实践了一下下,与大家分享一下 ...
- 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
效果图 上传文件页面: 下载文件页面: 1.母版页site.Master <%@ Master Language="C#" AutoEventWireup="tr ...
- [转载]ASP.NET Core文件上传与下载(多种上传方式)
ASP.NET Core文件上传与下载(多种上传方式) 前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在 ...
- C# 之 FTPserver中文件上传与下载(二)
通过上一篇博客<C# 之 FTPserver中文件上传与下载(一)>,我们已经创建好了一个FTPserver,而且该server须要username和password的验证 ...
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- (转载)JavaWeb学习总结(五十)——文件上传和下载
源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...
- JavaWeb学习总结,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- java文件上传和下载
简介 文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到 ...
- 使用jsp/servlet简单实现文件上传与下载
使用JSP/Servlet简单实现文件上传与下载 通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...
随机推荐
- datepicker clone 控件错误
删除id,并删除hasDatepicker //+ - function changeRows(sender,desc){ var tr = $(sender).closest("tr&q ...
- asp.net单击头模板中的checkbox,实现datalist中所有chebox的全选和取消
转载时请以超链接形式标明文章原始出处和作者信息及本声明http://blueseach.blogbus.com/logs/31281126.html 使用C#和javascript都可以实现,第二种更 ...
- JUC回顾之-ArrayBlockingQueue底层实现和原理
ArrayBlockingQueue的原理和底层实现的数据结构 : ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列,可以按照 FIFO(先进先出)原则对元素进行排序. 线程安 ...
- 解决parseSdkContent failed java.lang.NullPointerException错误
今天我的eclipse崩溃了,报“parseSdkContent failed java.lang.NullPointerException”的错误. 所有的安卓项目都不正常,创建项目就会报 java ...
- Blender 移动、旋转、缩放
1.手动调整物体的属性 当我们添加了一个物体后,例如一个Torus物体. 在左侧下角部分能看到“Add Torus”面板,面板包含了Locatin.Rotation.Major Segments.Mi ...
- 求字符串长度StringLength();
// StringLength2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" int StringLength(char str[]) ...
- Thinkphp 模板中使用自定义函数的方法
1.number_format {$number|number_format=2} 千分位,保留两位小数 2.round {$number|round=2} 四舍五入保留两位小数
- openURL调用其他程序(转)
转自:http://blog.csdn.net/iefreer/article/details/8812708 一个应用程序,可以调用其它的应用程序的. 和其它应用程序进行通讯如果一个应用程序支持一些 ...
- Window系统、主函数和窗体函数这三者之间的关系
理解Window系统.主窗体.窗体函数这三者之间的关系,对于编写Windows程序十分重要. 主函数和窗体函数都是由Windows系统来调用的函数.仅仅只是主函数是程序启动之后.系统首先调用的函数: ...
- ios开发之--编码及命名规范
做了几年的开发工作,因为是半路出的家,所以对这块一直都没怎么重视,所以在工作中,出现了很多的尴尬场景,编码和命名的规范是一定得有的,最起码一个团队之间的规范也是很有必要的.面向对象的编程,其实很好理解 ...