后台代码:

  1. public string connstr = "server=128.1.3.113;database=test;uid=sa;pwd=pass";
  2. protected void Page_Load(object sender, EventArgs e)
  3. {
  4. LoadData();
  5. }
  6.  
  7. protected void BtnSave_Click(object sender, EventArgs e)
  8. {
  9. if (FileUpload1.HasFile)
  10. {
  11. string name = FileUpload1.FileName;
  12. string filepath = Server.MapPath("~/") + "upload\\" + name;
  13. using (SqlConnection conn = new SqlConnection(connstr))
  14. {
  15. conn.Open();
  16. SqlCommand comm = conn.CreateCommand();
  17. comm.CommandText = string.Format("insert into PathTable (Name,Path) values('{0}','{1}')",name,filepath);
  18. int count = comm.ExecuteNonQuery();
  19. if (count > )
  20. {
  21. FileUpload1.SaveAs(filepath);
  22. LoadData();
  23. Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('保存成功')</script>");
  24. }
  25. else
  26. {
  27. ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('保存失败')</script>");
  28. }
  29. }
  30. }
  31. }
  32.  
  33. public void LoadData()
  34. {
  35. using (SqlConnection conn = new SqlConnection(connstr))
  36. {
  37. conn.Open();
  38. SqlCommand comm = conn.CreateCommand();
  39. comm.CommandText = "select * from PathTable";
  40. comm.ExecuteScalar();
  41. SqlDataAdapter adapter = new SqlDataAdapter(comm);
  42. DataSet ds = new DataSet();
  43. adapter.Fill(ds);
  44. GridView1.DataSource = ds.Tables[];
  45. GridView1.DataBind();
  46. }
  47. }
  48.  
  49. public static void DownloadFile(string physicalFilePath)
  50. {
  51. FileStream stream = null;
  52. try
  53. {
  54. stream = new FileStream(physicalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
  55. int bufSize = (int)stream.Length;
  56. byte[] buf = new byte[bufSize];
  57.  
  58. int bytesRead = stream.Read(buf, , bufSize);
  59. HttpContext.Current.Response.ContentType = "application/octet-stream";
  60. HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(physicalFilePath));
  61. HttpContext.Current.Response.OutputStream.Write(buf, , bytesRead);
  62. HttpContext.Current.Response.End();
  63. }
  64. finally
  65. {
  66. stream.Close();
  67. }
  68. }
  69.  
  70. protected void LinkButton_Click(object sender, CommandEventArgs e)
  71. {
  72. if (e.CommandArgument!=null)
  73. {
  74. string path = e.CommandArgument.ToString();
  75. DownloadFile(path);
  76. }
  77. }

前台代码:

  1. <head runat="server">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  3. <title></title>
  4. </head>
  5. <body>
  6. <form id="form1" runat="server">
  7. <div>
  8. </div>
  9. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
  10. <Columns>
  11. <asp:TemplateField HeaderText="编号">
  12. <ItemTemplate>
  13. <asp:Label ID="Id" Text='<%#Eval("Id") %>' runat="server"></asp:Label>
  14. </ItemTemplate>
  15. </asp:TemplateField>
  16. <asp:TemplateField HeaderText="文件名">
  17. <ItemTemplate>
  18. <asp:Label ID="Name" Text='<%#Eval("Name") %>' runat="server"></asp:Label>
  19. </ItemTemplate>
  20. </asp:TemplateField>
  21. <asp:TemplateField HeaderText="路径">
  22. <ItemTemplate>
  23. <asp:Label ID="Path" Text='<%#Eval("Path") %>' runat="server"></asp:Label>
  24. </ItemTemplate>
  25. </asp:TemplateField>
  26. <asp:TemplateField HeaderText="下载">
  27. <ItemTemplate>
  28. <asp:LinkButton Text="下载" runat="server" CommandArgument='<%#Eval("Path")%>' OnCommand="LinkButton_Click"></asp:LinkButton>
  29. </ItemTemplate>
  30. </asp:TemplateField>
  31. </Columns>
  32. </asp:GridView>
  33. <p>
  34. <asp:FileUpload ID="FileUpload1" runat="server"/>
  35. </p>
  36. <p>
  37. <asp:Button ID="BtnSave" runat="server" Text="保存" OnClick="BtnSave_Click" />
  38. </p>
  39. </form>
  40. </body>

注意:

1、GridView列中的TemplateField属性很实用,可以在其中添加其他发服务器控件、绑定事件和进行字段转换等;

2、设置CommandArgumet和OnCommand事件,可以在后台方便的获取绑定的字段;

3、Text='<%#Eval("Id")%>'   单引号内放双引号。

FileUpload上传与下载的更多相关文章

  1. day24(JAVAWEB上传与下载)

    javaWeb上传与下载 上传: 上传方式: jspSmartUpload   :应用在jsp上的文件上传与下载组件. FileUpload            :用用在jaava环境上的上传的功能 ...

  2. Webform之FileUpload(上传按钮控件)简单介绍及下载、上传文件时图片预览

    1.FileUpload上传控件:(原文:http://www.cnblogs.com/hide0511/archive/2006/09/24/513201.html) FileUpload 控件显示 ...

  3. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  4. Struts2入门(七)——Struts2的文件上传和下载

    一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...

  5. (转载)JavaWeb学习总结(五十)——文件上传和下载

    源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...

  6. JavaWeb学习总结,文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  7. java文件上传和下载

    简介 文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到 ...

  8. JavaWeb学习总结(五十)——文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  9. 文件上传和下载(可批量上传)——Spring(三)

    在文件上传和下载(可批量上传)——Spring(二)的基础上,发现了文件下载时,只有在Chrome浏览器下文件名正常显示,还有发布到服务器后,不能上传到指定的文件夹目录,如上传20160310.txt ...

随机推荐

  1. Protractor AngularJS测试框架教程

    Protractor是一个建立在WebDriverJS基础上的端到端(E2E)的AngularJS JavaScript Web应用程序测试框架.Protractor全自动化真实的模拟用户在真正的浏览 ...

  2. iOS - UIViewController

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIViewController : UIResponder <NSCoding, UIAppearanceC ...

  3. STRUTS2 标签 循环次数

    *<s:property value="menus.size()"/> * <s:if test='menus.size()>8'>    sssss ...

  4. Monkey学习(1)环境搭建

    环境搭建: Monkey程序由Android系统自带,需要配置J2SE平台的JDK,还需要配置Android平台的SDK. 1)下载和配置JDK 下载与安装JDK过程省略... 配置JDK环境变量,我 ...

  5. js实现checkbox的全选和全不选功能

    html代码: <form name="form1" method="post" action="manage.php?act=sub" ...

  6. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  7. 提高PHP开发质量的36个方法(精品)

    提高PHP开发质量的36个方法 林涛 发表于:2016-3-25 0:00 分类:26点 标签: 62次 1.不要使用相对路径 常常会看到: require_once('../../lib/some_ ...

  8. linux删除文件未释放空间问题处理

    linux删除文件未释放空间问题处理 或者 /根分区满了 (我的根分区是/dev/sda1,/dev/sda1满了) http://blog.csdn.net/donghustone/article/ ...

  9. webstorm注释写出的提示

    写出这种代码提示的方法是 在一个函数上方打出 /** 然后敲回车就出出来 没达到上面的效果,自己手动写上即可. 这样的好处是: 当你写代码用到此方法的时候会有参数类型提示,如图

  10. django 2

    创建一个管理员用户 首先,我们需要创建一个用户可以登录到管理网站. 运行 下面的命令: $ python manage.py createsuperuser 输入你想要的用户名,按回车. Userna ...