upload.aspx

来自「《ASP.NET C#程序设计案例教程》」· ASPX 代码 · 共 76 行

ASPX
76
字号
<%@ 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

		'下面调用函数进行判断,如果文件名已经存在,则提示更新文件名称,否则保存
		If FileExist(filename)=True Then
			message.Text = "该文件已经存在,请更新名称"
		Else
			'首先保存文件
			Dim filepath As String											'filepath是服务器端保存上传文件的完整路径
			filepath=Server.Mappath("upload") & "\" & filename 
			uploadfile.PostedFile.SaveAs(filepath)							'保存上传文件到upload文件夹中

			'下面将有关信息添加到数据库中
			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,fileintro,fileContentType,submit_date) Values(@filename,@filesize,@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("@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 If
End Sub

'下面的函数用来判断该文件名是否已经存在
Function FileExist(filename As String) As Boolean
	Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("temp.mdb"))	
	Dim strSql As String = "Select Count(*) As Total From uploadfile Where filename='" & filename & "'"
	Dim cmd As New OleDbCommand(strSql, conn)							
	conn.Open
	If cmd.ExecuteScalar()>0 Then						'ExecuteScalar会返回第1行第1列的字段值,也就是记录总数
		FileExist=True
	Else
		FileExist=False
	End If
	conn.Close
End Function
</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"/>
		<asp:Label id="message" runat="server"/>
    </form>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?