后台代码:

  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. Quartz.Net 调度框架配置介绍

    在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知等等.大家通过windows计划任务,windows服务等都实现过此类任务,甚至实现过自己的配置定制化的框架.那今天 ...

  2. 可重入锁 & 自旋锁 & Java里的AtomicReference和CAS操作 & Linux mutex不可重入

    之前还是写过蛮多的关于锁的文章的: http://www.cnblogs.com/charlesblc/p/5994162.html <[转载]Java中的锁机制 synchronized &a ...

  3. C++——类继承

    类库:类库由类声明和实现构成.类组合了数据表示和类方法,因此提供了比函数库更加完整的程序包. 类继承:从已有的类派生出新的类,派生类继承了原有类(称为基类)的特征,包括方法. 通过类继承可以完成的工作 ...

  4. [html] HTML结构的语义化

    原文链接:http://www.cnblogs.com/freeyiyi1993/p/3615179.html 1.什么是html语义化 选择合适的html标签,便于开发者阅读和写出更优雅的代码的同时 ...

  5. Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)

      Android 高手进阶(21)  版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明地址:http://blog.csdn.net/xiaanming/article/detail ...

  6. 在map中根据value获取key

    原文:http://blog.csdn.net/mexican_jacky/article/details/51789548 //根据map的value获取map的key private static ...

  7. spring相关资源

    1. 文档中英文 Spring Framework Reference Documentation http://docs.spring.io/spring/docs/4.1.7.RELEASE/sp ...

  8. mysql使用笔记(三)

    一.数值类型 1. 数值类型     标准sql中包含数据类型 INTEGER, SMALLINT, DECIMAL, NUMERIC,以及FLOAT, REAL, DOUBLE.mysql在此基础上 ...

  9. 微信jssdk

    http://203.195.235.76/jssdk/?from=timeline&isappinstalled=0

  10. request获取ip数据

    http://www.cnblogs.com/icerainsoft/p/3584532.html