文件上传到数据库

创建表
CREATE TABLE [FileTable] (
    
[FileID] [int] IDENTITY (11NOT NULL ,
    
[FileData] [image],
    
[FileContentType] [varchar] (50) ,
    
[FileDescription] [varchar] (200) ,
    
[FileSize] [int] NULL 
)
页面代码
<h3>保存文件到SQL Server数据库示例</h3>
            请选择要上传的文件:
<input id="UP_FILE" type="file" size="24" name="UP_FILE" runat="server">
            
<br>
            
<br>
            请输入文件说明:
<asp:textbox id="txtDescription" Runat="server"></asp:textbox>
            
<br>
            
<br>
            
<asp:button id="SubmitButton" Runat="server" Text="上传文件" Width="239"></asp:button>
            
<br>
            
<br>
            
<asp:label id="txtMessage" Runat="server" ForeColor="red"></asp:label><br>
            
<br>
            
<br>
上传文件事件代码
private void SubmitButton_Click(object sender, System.EventArgs e)
        
{
            
// HttpPostedFile对象,用于读取文件属性
            HttpPostedFile UpFile = UP_FILE.PostedFile;

            
// FileLength 变量存储文件的字节大小
            int FileLength = UpFile.ContentLength;

            
try
            
{
                
if (FileLength == 0)
                
{
                    txtMessage.Text 
= "<b>您未选择上传的文件</b>";
                }

                
else
                
{
                    
// 创建存储文件的临时 Byte 数组
                    Byte[] FileByteArray = new Byte[FileLength];

                    
// 建立数据流对象
                    Stream StreamObject = UpFile.InputStream;  
    
                    
// 读取文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
                    StreamObject.Read(FileByteArray,0,FileLength);   

                    
// 数据库操作
                    string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"];
                    
string query = "INSERT INTO FileTable (FileData, FileContentType, FileDescription, FileSize) VALUES (@FileData, @FileContentType, @FileDescription, @FileSize)";
                    SqlCommand myCommand 
= new SqlCommand(query, new SqlConnection(ConnStr));

                    
// 添加各项参数并赋值
                    myCommand.Parameters.Add("@FileData", SqlDbType.Image);
                    myCommand.Parameters.Add(
"@FileContentType", SqlDbType.VarChar, 50);
                    myCommand.Parameters.Add(
"@FileDescription", SqlDbType.VarChar, 200);
                    myCommand.Parameters.Add(
"@FileSize", SqlDbType.BigInt);
                    myCommand.Parameters[
"@FileData"].Value = FileByteArray;
                    myCommand.Parameters[
"@FileContentType"].Value = UpFile.ContentType;
                    myCommand.Parameters[
"@FileDescription"].Value = txtDescription.Text;
                    myCommand.Parameters[
"@FileSize"].Value = FileLength;
                    
                    
// 执行数据库操作
                    myCommand.Connection.Open();
                    myCommand.ExecuteNonQuery();
                    myCommand.Connection.Close();

                    
// 提示上传成功
                    txtMessage.Text = "<b>上传文件成功</b>";
                }

            }
 
            
catch (Exception ex) 
            
{
                
// 使用 Label 标签显示异常
                txtMessage.Text = ex.Message.ToString();
            }

        }
posted @ 2006-06-09 12:45  Tim工作室  阅读(1743)  评论(0编辑  收藏  举报