zoukankan      html  css  js  c++  java
  • ASP.NET2.0中将文件上传到数据库(转载)

    SQL Server数据库代码


    <%@ Page Language="C#" EnableViewState="true" %>

    <%@ Import Namespace="System.Data.SqlClient" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">
      string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
      protected void Button1_Click( object sender, EventArgs e )
      {
        System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream;

        if (fileDataStream.Length < 1)
        {
          Msg.Text = "请选择文件。";
          return;
        }

        //得到文件大小
        int fileLength = FileUpload1.PostedFile.ContentLength;

        //创建数组
        byte[] fileData = new byte[fileLength];
        //把文件流填充到数组
        fileDataStream.Read(fileData, 0, fileLength);
        //得到文件类型
        string fileType = FileUpload1.PostedFile.ContentType;

        //构建数据库连接,SQL语句,创建参数

        SqlConnection myConnection = new SqlConnection(strCnn);
        SqlCommand command = new SqlCommand("INSERT INTO UserPhoto (UserName,ContentType,Photo)" +
        "VALUES (@UserName,@ContentType,@Photo)", myConnection);

        command.Parameters.AddWithValue("@UserName", TextBox1.Text);
        command.Parameters.AddWithValue("@ContentType", fileType);
        command.Parameters.AddWithValue("@Photo", fileData);

        //打开连接,执行查询
        myConnection.Open();
        command.ExecuteNonQuery();
        myConnection.Close();
        Response.Redirect(Request.RawUrl);
      }


      protected void Page_Load( object sender, EventArgs e )
      {

        if (!Page.IsPostBack)
        {
          BindGrid();
        }
      }

      private void BindGrid( )
      {
        SqlConnection myConnection = new SqlConnection(strCnn);
        SqlCommand myCommand = new SqlCommand("SELECT * FROM UserPhoto Order By id DESC", myConnection);

        try
        {
          myConnection.Open();
          GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
          GridView1.DataBind();
        }
        catch (Exception SQLexc)
        {
          Response.Write("提取数据时出现错误:" + SQLexc.ToString());
        }
      }
      protected string FormatURL( object strArgument )
      {
        return "ReadImage.aspx?id=" + strArgument.ToString();
      } 

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
      <title>上传文件到数据库</title>
    </head>
    <body>
      <form id="MengXianhui" runat="server">
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
          <Columns>
            <asp:TemplateField>
              <ItemTemplate>
                <%#Eval("UserName") %>
              </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
              <ItemTemplate>
                <img src="<%#FormatURL(Eval("id")) %>" /></ItemTemplate>
            </asp:TemplateField>
          </Columns>
        </asp:GridView>
        <br />
        <br />
        姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        照片:<asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button>
        <p>
          <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
      </form>
    </body>
    </html>

    显示图片

    <%@ Page Language="C#" %>

    <%@ Import Namespace="System.Data.OleDb" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <script runat="server">

      protected void Page_Load( object sender, EventArgs e )
      {
        ////构建数据库连接,SQL语句,创建参数
        //ACCESS数据库使用本注释部分
        //string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
        //OleDbConnection myConnection = new OleDbConnection(strCnn);
        //OleDbCommand command = new OleDbCommand("select * from Person Where PersonID =" + Request.QueryString["id"], myConnection);
        //myConnection.Open();
        //OleDbDataReader dr = command.ExecuteReader();
        //if (dr.Read())
        //{
        //  Response.Clear();
        //  Response.AddHeader("Content-Type", dr["PersonImageType"].ToString());
        //  Response.BinaryWrite((byte[])dr["PersonImage"]);
        //}
        //dr.Close();
        //myConnection.Dispose();

        //构建数据库连接,SQL语句,创建参数
        string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
        SqlConnection myConnection = new SqlConnection(strCnn);
        SqlCommand command = new SqlCommand("select * from UserPhoto Where id =" + Request.QueryString["id"], myConnection);
        myConnection.Open();
        SqlDataReader dr = command.ExecuteReader();
        if (dr.Read())
        {
          Response.Clear();
          Response.AddHeader("Content-Type", dr["ContentType"].ToString());
          Response.BinaryWrite((byte[])dr["Photo"]);
        }
        dr.Close();
        myConnection.Dispose();
      }
    </script>

    创建SQL数据表语句

    CREATE TABLE [UserPhoto] (
     [id] [int] IDENTITY (1, 1) NOT NULL ,
     [UserName] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
     [ContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
     [Photo] [image] NOT NULL ,
     CONSTRAINT [PK_UserPhoto] PRIMARY KEY  CLUSTERED
     (
      [id]
     )  ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO

    上一页  [1] [2] 

  • 相关阅读:
    jsp 防止表单多次提交
    linux 部署java 项目命令
    checkbox 选中获取值
    java 实现用户自由选择字段实现导出EXCEL表格
    从七牛服务下载PDF文件
    【sping揭秘】9、容器内部事件发布(二)
    【sping揭秘】8、容器内部事件发布(一)
    【sping揭秘】7、国际化信息支持
    【sping揭秘】6、IOC容器之统一资源加载策略
    【sping揭秘】5、IOC容器(一)
  • 原文地址:https://www.cnblogs.com/nianshi/p/733878.html
Copyright © 2011-2022 走看看