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>