上传文件图片到数据库案例

17 篇文章 0 订阅
13 篇文章 0 订阅

Create Table Uploads
(
  u_id INT NOT NULL IDENTITY Primary Key,
  u_title Varchar( 200 ),
  u_document Image,
  u_documentType Varchar( 50 ),
  u_entrydate DATETIME Default getDate()
)

上传文件到数据库:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat=server>

void Button_Click(Object sender , EventArgs e)
{
 string  strFileExtension;
 string  strFileType;
 int intFileLen;
 Stream objStream;
 SqlConnection conMyData;
 string  strInsert;
 SqlCommand cmdInsert;

 if ( txtFileContents.PostedFile != null )
 {
  // Determine File Type
  int fileLen = txtFileContents.PostedFile.FileName.Length;
  strFileExtension = txtFileContents.PostedFile.FileName.Substring(fileLen-4,4);
  switch (strFileExtension.ToLower()) {
   case ".doc":
    strFileType = "doc";
   break;
   case ".ppt":
    strFileType = "ppt";
   break;
   case ".htm":
    strFileType = "htm";
   break;
   case "html":
    strFileType = "htm";
   break;
   default:
    strFileType = "txt";
   break;
  }
    
  // Grab the contents of uploaded file
  intFileLen = txtFileContents.PostedFile.ContentLength;
  byte[] arrFile = new byte[intFileLen];
  objStream = txtFileContents.PostedFile.InputStream;
  objStream.Read( arrFile, 0, intFileLen );

  // Add Uploaded file to database
  conMyData = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=myData" );
  strInsert = "Insert Uploads ( u_title, u_documentType, u_document ) " +      "Values (@title, @fileType, @document )";
  cmdInsert = new SqlCommand( strInsert, conMyData );
  cmdInsert.Parameters.Add( "@title", txtFileTitle.Text );
  cmdInsert.Parameters.Add( "@fileType", strFileType );
  cmdInsert.Parameters.Add( "@document", arrFile );
  conMyData.Open();
  cmdInsert.ExecuteNonQuery();
  conMyData.Close();
 }
}

</Script>

<html>
<head><title>DBUpload.aspx</title></head>
<body>

<form
  enctype="multipart/form-data"
  Runat="Server">

<h2>Upload File:</h2>

<b>File Title:</b>
<br>
<asp:TextBox
  ID="txtFileTitle"
  Runat="Server" />
<asp:RequiredFieldValidator
  ControlToValidate="txtFileTitle"
  Text="Required!"
  Runat="Server" />
<p>
<b>File:</b>
<br>
<input
  id="txtFileContents"
  type="file"
  Runat="Server" />
<p>
<asp:Button
  Text="Upload File!"
  OnClick="Button_Click"
  Runat="Server" />

</form>

</body>
</html>
 

显示数据库中的文件

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat=server>

void Page_Load(Object sender , EventArgs e)
{
 int intItemID;
 SqlConnection conMyData;
 string  strSelect;
 SqlCommand cmdSelect;
 SqlDataReader dtrSearch;

 intItemID = Convert.ToInt32(Request.Params["id"]);
 conMyData = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=myData" );
 strSelect = "SELECT u_documentType, u_document From Uploads "
  + "WHERE u_id=@itemID";
 cmdSelect = new SqlCommand( strSelect, conMyData );
 cmdSelect.Parameters.Add( "@itemID", intItemID );
 conMyData.Open();
 dtrSearch = cmdSelect.ExecuteReader();
 if ( dtrSearch.Read())
 {
  // set Content Type
  Response.ClearHeaders();
  switch ((string)dtrSearch["u_documentType"]) {
   case "doc":
    Response.ContentType = "application/msword";
    break;
   case "ppt":
    Response.ContentType = "application/ppt";
    break;
   case "txt":
    Response.ContentType = "text/plain";
    break;
  }
  Response.BinaryWrite( (byte[])dtrSearch["u_document"] );
 }
 dtrSearch.Close();
 conMyData.Close();
}
</Script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值