<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
Sub Enter_Click(sender As Object, e As EventArgs)
'只有客户提交了文件和文件说明才继续执行
If uploadfile.PostedFile.FileName<>"" And Intro.Text<>"" Then
'第一步:获取上传的文件的各种信息,以备后面使用***********************
'下面变量分别表示文件的名称,文件MIME类型,和文件说明和文件大小
Dim filename,fileContentType,fileintro As String
Dim filesize as Long
'Path.GetFileName方法可以从任何一个路径字符串中获取文件名称
filename= Path.GetFileName(uploadfile.PostedFile.FileName)
filesize=uploadfile.PostedFile.ContentLength
fileContentType=uploadfile.PostedFile.ContentType
fileintro=intro.Text
'第二步:利用Stream对象将上传的文件保存到二进制数组中*******************
Dim buffer(filesize) As Byte '建立一个和文件大小一致的二进制数组
Dim objStream As Stream '定义一个Stream对象变量
objStream=uploadfile.PostedFile.InputStream '读取上传文件到Stream对象中
objStream.Read(buffer,0,filesize) '读取整个文件到buffer数租中
'第三步:将二进制数组中的数据保存到数据库中********************************
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("temp.mdb"))
Dim cmd As New OleDbCommand("Insert Into uploadfile(filename,filesize,filebody,fileintro,fileContentType,submit_date) Values(@filename,@filesize,@filebody,@fileintro,@fileContentType,@Submit_Date)", conn)
'给参数赋值
cmd.Parameters.Add(New OleDbParameter("@filename", OleDbType.Char,50))
cmd.Parameters("@filename").Value=filename
cmd.Parameters.Add(New OleDbParameter("@filesize", OleDbType.Integer))
cmd.Parameters("@filesize").Value=filesize
cmd.Parameters.Add(New OleDbParameter("@filebody", OleDbType.Binary))
cmd.Parameters("@filebody").Value=Buffer '这里是保存文件内容的二进制数组
cmd.Parameters.Add(New OleDbParameter("@fileintro", OleDbType.Char,250))
cmd.Parameters("@fileintro").Value=fileintro
cmd.Parameters.Add(New OleDbParameter("@fileContentType", OleDbType.Char,50))
cmd.Parameters("@fileContentType").Value=fileContentType
cmd.Parameters.Add(New OleDbParameter("@submit_date", OleDbType.Date))
cmd.Parameters("@submit_date").Value=Now()
'执行操作,插入记录
conn.open()
cmd.ExecuteNonQuery()
conn.close()
'下面可以重定向回首页
Response.Redirect("index.aspx")
End If
End Sub
</script>
<html>
<body>
<h4 align="center">上传文件到数据库</h4>
<form enctype="multipart/form-data" runat="server">
选择文件:<input id="uploadfile" type="file" runat="server">
<br>文件说明:<asp:textbox id="intro" runat="server"/>
<br><asp:Button id="enter" Text="提交" OnClick="Enter_Click" runat="server"/>
</form>
</body>
</html>