FileUpload上传与下载
后台代码:
- public string connstr = "server=128.1.3.113;database=test;uid=sa;pwd=pass";
- protected void Page_Load(object sender, EventArgs e)
- {
- LoadData();
- }
- protected void BtnSave_Click(object sender, EventArgs e)
- {
- if (FileUpload1.HasFile)
- {
- string name = FileUpload1.FileName;
- string filepath = Server.MapPath("~/") + "upload\\" + name;
- using (SqlConnection conn = new SqlConnection(connstr))
- {
- conn.Open();
- SqlCommand comm = conn.CreateCommand();
- comm.CommandText = string.Format("insert into PathTable (Name,Path) values('{0}','{1}')",name,filepath);
- int count = comm.ExecuteNonQuery();
- if (count > )
- {
- FileUpload1.SaveAs(filepath);
- LoadData();
- Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('保存成功')</script>");
- }
- else
- {
- ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('保存失败')</script>");
- }
- }
- }
- }
- public void LoadData()
- {
- using (SqlConnection conn = new SqlConnection(connstr))
- {
- conn.Open();
- SqlCommand comm = conn.CreateCommand();
- comm.CommandText = "select * from PathTable";
- comm.ExecuteScalar();
- SqlDataAdapter adapter = new SqlDataAdapter(comm);
- DataSet ds = new DataSet();
- adapter.Fill(ds);
- GridView1.DataSource = ds.Tables[];
- GridView1.DataBind();
- }
- }
- public static void DownloadFile(string physicalFilePath)
- {
- FileStream stream = null;
- try
- {
- stream = new FileStream(physicalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
- int bufSize = (int)stream.Length;
- byte[] buf = new byte[bufSize];
- int bytesRead = stream.Read(buf, , bufSize);
- HttpContext.Current.Response.ContentType = "application/octet-stream";
- HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(physicalFilePath));
- HttpContext.Current.Response.OutputStream.Write(buf, , bytesRead);
- HttpContext.Current.Response.End();
- }
- finally
- {
- stream.Close();
- }
- }
- protected void LinkButton_Click(object sender, CommandEventArgs e)
- {
- if (e.CommandArgument!=null)
- {
- string path = e.CommandArgument.ToString();
- DownloadFile(path);
- }
- }
前台代码:
- <head runat="server">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- </div>
- <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
- <Columns>
- <asp:TemplateField HeaderText="编号">
- <ItemTemplate>
- <asp:Label ID="Id" Text='<%#Eval("Id") %>' runat="server"></asp:Label>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="文件名">
- <ItemTemplate>
- <asp:Label ID="Name" Text='<%#Eval("Name") %>' runat="server"></asp:Label>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="路径">
- <ItemTemplate>
- <asp:Label ID="Path" Text='<%#Eval("Path") %>' runat="server"></asp:Label>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="下载">
- <ItemTemplate>
- <asp:LinkButton Text="下载" runat="server" CommandArgument='<%#Eval("Path")%>' OnCommand="LinkButton_Click"></asp:LinkButton>
- </ItemTemplate>
- </asp:TemplateField>
- </Columns>
- </asp:GridView>
- <p>
- <asp:FileUpload ID="FileUpload1" runat="server"/>
- </p>
- <p>
- <asp:Button ID="BtnSave" runat="server" Text="保存" OnClick="BtnSave_Click" />
- </p>
- </form>
- </body>
注意:
1、GridView列中的TemplateField属性很实用,可以在其中添加其他发服务器控件、绑定事件和进行字段转换等;
2、设置CommandArgumet和OnCommand事件,可以在后台方便的获取绑定的字段;
3、Text='<%#Eval("Id")%>' 单引号内放双引号。
FileUpload上传与下载的更多相关文章
- day24(JAVAWEB上传与下载)
javaWeb上传与下载 上传: 上传方式: jspSmartUpload :应用在jsp上的文件上传与下载组件. FileUpload :用用在jaava环境上的上传的功能 ...
- Webform之FileUpload(上传按钮控件)简单介绍及下载、上传文件时图片预览
1.FileUpload上传控件:(原文:http://www.cnblogs.com/hide0511/archive/2006/09/24/513201.html) FileUpload 控件显示 ...
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- Struts2入门(七)——Struts2的文件上传和下载
一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...
- (转载)JavaWeb学习总结(五十)——文件上传和下载
源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...
- JavaWeb学习总结,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- java文件上传和下载
简介 文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- 文件上传和下载(可批量上传)——Spring(三)
在文件上传和下载(可批量上传)——Spring(二)的基础上,发现了文件下载时,只有在Chrome浏览器下文件名正常显示,还有发布到服务器后,不能上传到指定的文件夹目录,如上传20160310.txt ...
随机推荐
- Quartz.Net 调度框架配置介绍
在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知等等.大家通过windows计划任务,windows服务等都实现过此类任务,甚至实现过自己的配置定制化的框架.那今天 ...
- 可重入锁 & 自旋锁 & Java里的AtomicReference和CAS操作 & Linux mutex不可重入
之前还是写过蛮多的关于锁的文章的: http://www.cnblogs.com/charlesblc/p/5994162.html <[转载]Java中的锁机制 synchronized &a ...
- C++——类继承
类库:类库由类声明和实现构成.类组合了数据表示和类方法,因此提供了比函数库更加完整的程序包. 类继承:从已有的类派生出新的类,派生类继承了原有类(称为基类)的特征,包括方法. 通过类继承可以完成的工作 ...
- [html] HTML结构的语义化
原文链接:http://www.cnblogs.com/freeyiyi1993/p/3615179.html 1.什么是html语义化 选择合适的html标签,便于开发者阅读和写出更优雅的代码的同时 ...
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
Android 高手进阶(21) 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明地址:http://blog.csdn.net/xiaanming/article/detail ...
- 在map中根据value获取key
原文:http://blog.csdn.net/mexican_jacky/article/details/51789548 //根据map的value获取map的key private static ...
- spring相关资源
1. 文档中英文 Spring Framework Reference Documentation http://docs.spring.io/spring/docs/4.1.7.RELEASE/sp ...
- mysql使用笔记(三)
一.数值类型 1. 数值类型 标准sql中包含数据类型 INTEGER, SMALLINT, DECIMAL, NUMERIC,以及FLOAT, REAL, DOUBLE.mysql在此基础上 ...
- 微信jssdk
http://203.195.235.76/jssdk/?from=timeline&isappinstalled=0
- request获取ip数据
http://www.cnblogs.com/icerainsoft/p/3584532.html