C#.net 上传,下载文件(数据库)
没有什么好说的,直接复制代码就可以用的.
------------页面-----------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test6.aspx.cs" Inherits="test_test6" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<link href="../Style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data" >
<div>
<asp:FileUpload ID="MyFile" runat = "Server" Width="333px" />
<asp:Button ID="aaa" Text="上传" runat = "Server" OnClick="aaa_Click" />
<asp:Button ID="Button1" Text="打开" runat = "server" OnClick="Button1_Click" />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" Width = "600px"
CssClass="tb" DataKeyNames="FileName" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnPageIndexChanging="GridView1_PageIndexChanging"
PageSize="15">
<Columns>
<asp:TemplateField HeaderText="文件名称">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Select" Text='<%# Bind("FileName") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FileType" HeaderText="文件类型" />
<asp:BoundField DataField="FileContentType" HeaderText="文件内容类型" />
</Columns>
<RowStyle CssClass="tb_row" />
<SelectedRowStyle CssClass="tb_select" />
<HeaderStyle CssClass="tb_head" />
<AlternatingRowStyle CssClass="tb_alter" />
</asp:GridView>
</div>
</form>
</body>
</html>
-------------代码----------------------
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.SqlClient;
using System.IO;
using System.Text;
public partial class test_test6 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ShowGridView1();
}
}
private void ShowGridView1()
{
string strSql = "select * from TestFile";
DataTable dt = Utils.executeQueryT(strSql, Utils.ConnectionHRIS);
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string fileName = GridView1.SelectedValue.ToString();
string sqlStr = "select * from TestFile where FileName = '" + fileName + "' ";
DataTable dt = Utils.executeQueryT(sqlStr,Utils.ConnectionHRIS);
if(dt.Rows.Count>0)
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
byte[] bytes = ((Byte[])dt.Rows[0]["FileContent"]);
Response.HeaderEncoding = Encoding.Default;
Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(dt.Rows[0]["FileName"].ToString().Trim(), System.Text.Encoding.UTF8).Replace("+", ""));
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = Encoding.Default;
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.Flush();
Response.OutputStream.Close();
Response.End();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
ShowGridView1();
}
protected void aaa_Click(object sender, EventArgs e)
{
if (MyFile.PostedFile != null)
{
HttpPostedFile upFile = MyFile.PostedFile;
string fileName = MyFile.FileName;
string[] fts = fileName.Split('.');
string fileType = fts[fts.Length - 1];
string fileContentType = upFile.ContentType.ToString().Trim();
//FileStream fs = (new FileInfo(upFile.FileName)).OpenRead();
Stream fs = upFile.InputStream;
byte[] fileContent = new byte[fs.Length];
fs.Read(fileContent,0,Int32.Parse(fs.Length.ToString()));
if (fileType != "exe" && fileType != "aspx" && fileType != "asp" && fileType != "dll")
{
string strSql = "insert into TestFile(FileName,FileType,FileContentType,FileContent) values(@FileName,@FileType,@FileContentType,@FileContent)";
using (SqlConnection cn = new SqlConnection(Utils.ConnectionHRIS))
{
cn.Open();
SqlCommand cmd = new SqlCommand(strSql, cn);
cmd.Parameters.Add("@FileName", SqlDbType.NVarChar).Value = fileName;
cmd.Parameters.Add("@FileType", SqlDbType.NVarChar).Value = fileType;
cmd.Parameters.Add("@FileContentType", SqlDbType.NVarChar).Value = fileContentType;
cmd.Parameters.Add("@FileContent", SqlDbType.Image).Value = fileContent;
int val = cmd.ExecuteNonQuery();
if (val > 0)
{
ShowGridView1();
Response.Write("<script language='javascript' type='text/javascript'>alert('上传成功!');</script>");
}
else
{
Response.Write("<script language='javascript' type='text/javascript'>alert('上传失败!');</script>");
}
}
}
else
{
Response.Write("<script language='javascript' type='text/javascript'>alert('" + fileType + "文件类型不能上传!');</script>");
}
}
else
{
Response.Write("<script language='javascript' type='text/javascript'>alert('请选择上传文件!');</script>");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script language='javascript' type='text/javascript'>window.open('TestTree.aspx','','height=500,width=600,top=150,left=300,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no');</script>");
}
}
浙公网安备 33010602011771号