ASP.NET中上传文件到数据库

类别:.NET开发 点击:0 评论:0 推荐:

CREATE TABLE tblBooksUpload

(

DocID int NOT NULL IDENTITY Primary Key ,

DocTitle varchar (200) ,

Doc image,

DocType varchar (50) ,

Entrydate datetime Default GetDate()

)

************************************
CREATE PROCEDURE uSP_BooksUploadFile

@Title varchar(200),

@Doc image,

@DocType varchar(4)

AS

INSERT tblBooksUpload(DocTitle,Doc,DocType)

VALUES (@Title,@Doc,@DocType)

GO



*********************************
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using System.IO;
using System.Data.SqlClient;


namespace WebApplication200501
{
 /// <summary>
 /// WebForm3_Ftp 的摘要说明。
 /// </summary>
 public class WebForm3_Ftp : System.Web.UI.Page
 {
  protected System.Web.UI.HtmlControls.HtmlInputFile ftpfiles;
  protected System.Web.UI.WebControls.Label LabelStat;
  protected System.Web.UI.WebControls.TextBox TextBoxFileName;
  protected System.Web.UI.WebControls.Label Label1;
  protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
  protected System.Data.SqlClient.SqlConnection sqlConnection1;
  protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
  protected System.Data.SqlClient.SqlCommand sqlInsertCommand1;
  protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1;
  protected System.Data.SqlClient.SqlCommand sqlDeleteCommand1;
  protected System.Web.UI.WebControls.Button Button1;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter();
   this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
   this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand();
   this.sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand();
   this.sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand();
   this.sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand();
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   //
   // sqlDataAdapter1
   //
   this.sqlDataAdapter1.DeleteCommand = this.sqlDeleteCommand1;
   this.sqlDataAdapter1.InsertCommand = this.sqlInsertCommand1;
   this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1;
   this.sqlDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
                           new System.Data.Common.DataTableMapping("Table", "tblBooksUpload", new System.Data.Common.DataColumnMapping[] {
                                                      new System.Data.Common.DataColumnMapping("DocID", "DocID"),
                                                      new System.Data.Common.DataColumnMapping("DocTitle", "DocTitle"),
                                                      new System.Data.Common.DataColumnMapping("Doc", "Doc"),
                                                      new System.Data.Common.DataColumnMapping("DocType", "DocType"),
                                                      new System.Data.Common.DataColumnMapping("Entrydate", "Entrydate")})});
   this.sqlDataAdapter1.UpdateCommand = this.sqlUpdateCommand1;
   //
   // sqlConnection1
   //
   this.sqlConnection1.ConnectionString = "workstation id=\"DAYANG-C\";packet size=4096;integrated security=SSPI;data source=\"" +
    "DAYANG-C\";persist security info=False;initial catalog=MyDb";
   //
   // sqlSelectCommand1
   //
   this.sqlSelectCommand1.CommandText = "[NewSelectCommand]";
   this.sqlSelectCommand1.CommandType = System.Data.CommandType.StoredProcedure;
   this.sqlSelectCommand1.Connection = this.sqlConnection1;
   this.sqlSelectCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
   //
   // sqlInsertCommand1
   //
   this.sqlInsertCommand1.CommandText = "[NewInsertCommand]";
   this.sqlInsertCommand1.CommandType = System.Data.CommandType.StoredProcedure;
   this.sqlInsertCommand1.Connection = this.sqlConnection1;
   this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
   this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DocTitle", System.Data.SqlDbType.VarChar, 200, "DocTitle"));
   this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Doc", System.Data.SqlDbType.VarBinary, 2147483647, "Doc"));
   this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DocType", System.Data.SqlDbType.VarChar, 50, "DocType"));
   this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Entrydate", System.Data.SqlDbType.DateTime, 8, "Entrydate"));
   //
   // sqlUpdateCommand1
   //
   this.sqlUpdateCommand1.CommandText = "[NewUpdateCommand]";
   this.sqlUpdateCommand1.CommandType = System.Data.CommandType.StoredProcedure;
   this.sqlUpdateCommand1.Connection = this.sqlConnection1;
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DocTitle", System.Data.SqlDbType.VarChar, 200, "DocTitle"));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Doc", System.Data.SqlDbType.VarBinary, 2147483647, "Doc"));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DocType", System.Data.SqlDbType.VarChar, 50, "DocType"));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Entrydate", System.Data.SqlDbType.DateTime, 8, "Entrydate"));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DocID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DocID", System.Data.DataRowVersion.Original, null));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DocTitle", System.Data.SqlDbType.VarChar, 200, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DocTitle", System.Data.DataRowVersion.Original, null));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DocType", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DocType", System.Data.DataRowVersion.Original, null));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_Entrydate", System.Data.SqlDbType.DateTime, 8, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Entrydate", System.Data.DataRowVersion.Original, null));
   this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DocID", System.Data.SqlDbType.Int, 4, "DocID"));
   //
   // sqlDeleteCommand1
   //
   this.sqlDeleteCommand1.CommandText = "[NewDeleteCommand]";
   this.sqlDeleteCommand1.CommandType = System.Data.CommandType.StoredProcedure;
   this.sqlDeleteCommand1.Connection = this.sqlConnection1;
   this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
   this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DocID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DocID", System.Data.DataRowVersion.Original, null));
   this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DocTitle", System.Data.SqlDbType.VarChar, 200, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DocTitle", System.Data.DataRowVersion.Original, null));
   this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DocType", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DocType", System.Data.DataRowVersion.Original, null));
   this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_Entrydate", System.Data.SqlDbType.DateTime, 8, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Entrydate", System.Data.DataRowVersion.Original, null));
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void Button1_Click(object sender, System.EventArgs e)
  {
   //if(ftpfiles.PostedFile!=null)
   //{
   // try
   // {
   //  ftpfiles.PostedFile.SaveAs("c:\\"+TextBoxFileName.Text);
   //  LabelStat.Text="上传文件成功!";
   // }
   // catch(Exception exc)
   // {
   //  LabelStat.Text="上传过程中出错!"+exc.ToString();
   // }
   //}
   string s;
   
   string strDocExt;

   //strDocType用于保存上传文件的类型

   string strDocType;


   //用于保存文件大小

   int intDocLen;


   //Stream用于读取上传数据

   Stream objStream;


   SqlConnection BooksConn;

   SqlCommand cmdUploadDoc;


   if(IsValid)

   {

    if(ftpfiles.PostedFile != null)

    {

     //文件类型
     

     strDocExt = ftpfiles.PostedFile.FileName.ToLower();

     switch(strDocExt)

     {

      case ".doc":

       strDocType = "doc";

       break;


      case ".ppt":

       strDocType = "ppt";

       break;


      case ".htm":

       strDocType = "htm";

       break;


      case ".html":

       strDocType = "htm";

       break;


      case ".jpg":

       strDocType = "jpg";

       break;


      case ".gif":

       strDocType = "gif";

       break;


      default:

       strDocType = "txt";

       break;

     }

     //上传文件具体内容


     intDocLen = ftpfiles.PostedFile.ContentLength;

     byte[] Docbuffer = new byte[intDocLen];


     objStream = ftpfiles.PostedFile.InputStream;


     //文件保存到缓存

     //缓存将保存到数据库

     objStream.Read(Docbuffer ,0,intDocLen);


     BooksConn = new

      SqlConnection("Server =dayang-c;Integrated Security=SSPI;Database=mydb");   
      


     cmdUploadDoc = new

      SqlCommand("uSP_BooksUploadFile",BooksConn);

     cmdUploadDoc.CommandType = CommandType.StoredProcedure;

     cmdUploadDoc.Parameters.Add("@Title ",SqlDbType.VarChar,200);

     cmdUploadDoc.Parameters.Add("@Doc",SqlDbType.Image);

     cmdUploadDoc.Parameters.Add("@DocType",SqlDbType.VarChar,4);

     cmdUploadDoc.Parameters[0].Value = TextBoxFileName.Text;

     cmdUploadDoc.Parameters[1].Value = Docbuffer ;

     cmdUploadDoc.Parameters[2].Value = strDocType;


     BooksConn.Open();

     cmdUploadDoc.ExecuteNonQuery();

     BooksConn.Close();
    }
   }
   LabelStat.Text="上传文件成功!";
    
  }
 }

}

本文地址:http://com.8s8s.com/it/it41808.htm