下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> private string connectionString = "Data Source=192.168.3.1;Initial Catalog=TestData;User Id=sa;Password=lambada;"; protected void Button1_Click(object sender,EventArgs e) { //得到文件数组 byte[] fileData = FileUpload1.FileBytes; //得到文件名字 string fileName = System.IO.Path.GetFileName(FileUpload1.FileName); //得到文件类型 string fileType = FileUpload1.PostedFile.ContentType; //构建数据库连接,sql语句,创建参数 System.Data.sqlClient.sqlConnection myConnection = new System.Data.sqlClient.sqlConnection(connectionString); String strsql = "INSERT INTO FileTable (ContentType,Content,Title)" + "VALUES (@ContentType,@Content,@Title)"; System.Data.sqlClient.sqlCommand command = new System.Data.sqlClient.sqlCommand(strsql,myConnection); command.Parameters.AddWithValue("@ContentType",fileType); command.Parameters.AddWithValue("@Content",fileData); command.Parameters.AddWithValue("@Title",fileName); //打开连接,执行查询 myConnection.open(); command.ExecuteNonQuery(); myConnection.Close(); myConnection.dispose(); Response.Redirect(Request.FilePath); } protected void Page_Load(object sender,EventArgs e) { /* CREATE TABLE [FileTable] ( [FileId] [int] IDENTITY (1,1) NOT NULL,[Title] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL,[ContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL,[Content] [image] NULL,CONSTRAINT [PK_FileTable] PRIMARY KEY CLUSTERED ( [FileId] ) ON [PRIMARY] ) ON [PRIMARY] TEXtimage_ON [PRIMARY] */ //构建数据库连接,sql语句,创建参数 System.Data.sqlClient.sqlConnection myConnection = new System.Data.sqlClient.sqlConnection(connectionString); String strsql = "select * from FileTable"; System.Data.sqlClient.sqlCommand command = new System.Data.sqlClient.sqlCommand(strsql,myConnection); //打开连接,执行查询 myConnection.open(); System.Data.sqlClient.sqlDataReader dr = command.ExecuteReader(); GridView1.DataSource = dr; GridView1.DataBind(); myConnection.Close(); myConnection.dispose(); } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传文件" /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:HyperLinkField DatanavigateUrlFields="FileId" HeaderText="文件名" DataTextField="Title" DatanavigateUrlFormatString="~/Download.ashx?FileId={0}" /> </Columns> </asp:GridView> </form> </body> </html>
//Download.ashx
<%@ WebHandler Language="C#" Class="Download" %> using System; using System.Web; using System.Data.sqlClient; public class Download : IHttpHandler { private string connectionString = "Data Source=192.168.3.1;Initial Catalog=TestData;User Id=sa;Password=lambada;"; public void ProcessRequest(HttpContext context) { String fileId = context.Request.QueryString["FileId"]; if (String.IsNullOrEmpty(fileId)) { context.Response.ContentType = "text/html"; context.Response.Write("无效的ID。"); return; } int id = 0; if (!Int32.TryParse(fileId,out id)) { context.Response.ContentType = "text/html"; context.Response.Write("ID 不是数字。"); return; } sqlConnection myConnection = new sqlConnection(connectionString); String strsql = "select * from FileTable Where [email protected]"; sqlCommand command = new sqlCommand(strsql,myConnection); command.Parameters.AddWithValue("@FileId",fileId); //打开连接,执行查询 myConnection.open(); sqlDataReader dr = command.ExecuteReader(); if (dr.Read()) { String fileName = dr["Title"].ToString(); if (context.Request.UserAgent.IndexOf("MSIE") > -1) { fileName = HttpUtility.UrlEncode(fileName); } context.Response.ClearContent(); context.Response.ContentType = dr["ContentType"].ToString(); context.response.addheader("Content-disposition","attachment;filename=" + fileName); context.Response.BinaryWrite((Byte[])dr["Content"]); } else { context.Response.ContentType = "text/html"; context.Response.Write("没找到文件。"); } myConnection.Close(); myConnection.dispose(); } public bool IsReusable { get { return false; } } }
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。