四. 程序源代码:
<% @ Import Namespace=" System.IO " %>
<html >
<BODY >
<SCRIPT LANGUAGE = "VB" RUNAT = "SERVER" >
Sub UploadFile_Clicked ( Sender as Object, e as EventArgs )
Dim lstrFileName as string
Dim lstrFileNamePath as string
Dim lstrFileFolder as string
' 如果上传目录为空,就使用" c:\ "作为缺省上传目录
' 获得上传到服务器的目录名称
if dir.value <> "" then
lstrFileFolder = dir.value
else
lstrFileFolder = "c:\"
end if
' 获得文件名称
lstrFileName = loFile.PostedFile.FileName
' 注: loFile.PostedFile.FileName 返回的是
通过文件对话框选择的文件名,这之中包含了文件的目录信息
lstrFileName = Path.GetFileName ( lstrFileName )
' 去掉目录信息,返回文件名称
' 判断上传目录是否存在,不存在就建立
If ( not Directory.Exists ( lstrFileFolder ) ) Then
Directory.CreateDirectory ( lstrFileFolder )
End If
'上传文件到服务器
lstrFileNamePath = lstrFileFolder & lstrFileName
' 得到上传目录及文件名称
loFile.PostedFile.SaveAs ( lstrFileNamePath )
' 获得并显示上传文件的属性
FileName.Text = lstrFileName
' 获得文件名称
FileType.Text = loFile.PostedFile.ContentType
' 获得文件类型
FileLength.Text = cStr ( loFile.PostedFile.ContentLength )
' 获得文件长度
FileUploadForm.visible = false
AnswerMsg.visible = true
' 显示上传文件属性
End sub
</SCRIPT >
<ASP:panel id = "FileUploadForm" visible = " true " runat = "server" >
<form method = "post" enctype = "multipart/form-data" runat = "server" >
<h1 > 欢迎使用ASP.NET页面实现文件上传 </h1 >
请选择上传到服务器的文件名称:
<input id = "loFile" type = "file" runat = "server" > <br >
请输入上传到服务器的目录名称:
<input id = "dir" type = "text" runat = "server" > <br >
<input type = "submit" value = "开始上传" OnServerClick = "
UploadFile_Clicked" runat = "server" >
<br >
</form >
</ASP:panel >
<ASP:panel id = "AnswerMsg" visible = " false " runat = "server" >
谢谢使用ASP.NET页面实现文件上传 <br >
成功上传 <ASP:label id = "FileName" runat = "server" /> <br >
文件大小 <ASP:label id = "FileLength" runat = "server" /> 字节 <br > 文件类型 <ASP:label id = "FileType " runat = "server" /> <br >
</ASP:panel >
</BODY >
</HTML >
五. 总结
至此我们就完成了一个比较完善的FTP文件上传软件的全部工作,由此可见ASP.NET的功能还是比较强大的。通过本例子,我们也看到要想灵活运用ASP.NET,还要深入掌握微软公司为.NET FRAMEWORK开发的软件开发包(SDK BETA 2),只有掌握了.NET FRAMEWORK开发的软件开发包,才可能用ASP.NET开发出功能更强大,生命力更大的软件。