孤独游人C#.Net技术博客

C#.net伴随着我度过了快5年的光阴了,在这5年里非常感谢cnblogs给我的帮助,5年之期,我也希望能够给大家带来一些小小的帮助,为此,我开通了我的博客园,以后有技术上的一些心得的话,我也会发表上来,希望大家能够发表自己的评论,大家共同进步!

导航

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>");
    }
}


 

 

posted on 2010-01-15 13:56  陳修君  阅读(980)  评论(0)    收藏  举报