如果要用ASP来作一个FTP文件上传的页面,我想很多人立刻就会想到要用第三方开发的组件,利用第三方的组件,虽然开发起来相对比较容易。但一般来说,免费下载的第三方的组件都有某些方面的功能限制,若要购买正版的第三方组件,对于国内的用户,花销也是一个不小的数字,就是能够承担的起,烦杂的手续也使很多人望而却步。虽然微软公司在本身的视窗系统里面也提供了一个可以用来上传文件的组件--Posting Acceptor。但用过这个组件的朋友们都有一种普遍的感觉,就是实在不好用。
现在好了,自从微软公司推出了.Net FrameWork以后,作为.Net FrameWork中重要组成部分的ASP.NET已经在内部建立了文件上传的功能,并且这种功能既是免费的,用起来又相当好用。下面我们就通过一个例子来介绍如何利用ASP.NET的这种功能完成文件上传。
一.
软件编写及的运行环境
微软公司视窗2000专业版和.Net FrameWork SDK BETA2(微软公司开发,用以.Net开发的软件开发包测试2版本) 。 如果运行的服务器的硬盘分区是NTSF分区,就请把服务器上的所有硬盘的存取属性设定为Everyone , 这样可确保上传文件可以正确写入服务器的硬盘中。
二. 软件的基本功能
本软件主要完成上传本地的文件到服务器的指定目录的功能。就是在软件的运行界面中,在用户选择完要上传的文件名称,填入要上传到服务器的目录名称后,如果没有填入上传到服务器目录,则使用缺省目录" C:\ " ,如果填入的目录在服务器上不存在,就建立此目录。在按" 开始上传 "按钮后,软件就把选择的文件上传到指定的目录中,然后返回上传文件的信息,即文件的名称,文件的大小及文件的类型。软件具体的操作界面及运行结果界面如下图所示:

图1:软件的操作界面

图2:软件的运行结果界面
三. 软件设计中的重要步骤及具体解决办法
<一>.选择本地要上传到服务器的文件
首先要感谢ASP.NET的强大功能,他提供的HTML控制元件,使得我们很容易的通过一个对话框来选择要上传的文件。当然你的浏览器也必须是IE 3.02 或者Netscape 3.0版本或者比这二者版本高的浏览器。通过下列语句就可以完成选择本地一个文件的工作:
<input id = " loFile " type = " file " runat = " server " > |
<二>.为了成功完成文件上传工作,在Form中的编码必须用" multipart/form-data " , 而不用From的缺省编码" application/x-www-form-urlencoded "。具体代码如下:
<form method = " post " enctype =" multipart/form-data " runat = " server ">
</form > |
<三>.获得上传的文件名称及对磁盘的若干操作
为了获得上传的文件名称,必须要引入一个名称空间( NameSapce ) --System.IO。此名称空间里面定义了许多关于文件及磁盘操作的类,在本软件中就是通过这些类的某些方法和属性来完成软件中的一些功能。
(1). 获得上传文件的名称
使用Path类中的GetFileName方法,具体如下:
lstrFileName = loFile.PostedFile.FileName
' 注: loFile.PostedFile.FileName 返回的是通过文件对话框选择的文件名,
这之中包含了文件的目录信息
lstrFileName = Path.GetFileName ( lstrFileName )
' 去掉目录信息,返回文件名称 |
(2). 判断上传目录是否存在,不存在就建立
建立目录要使用到Directory类中的 CreateDirectory 方法,判断目录是否存在要用到 Directory 类中的Exists方法。具体如下:
If ( not Directory.Exists( lstrFileFolder ) ) Then
Directory.CreateDirectory ( lstrFileFolder )
End If
' 注:lstrFileFolder是用户填入的目录名称,或者是缺省的目录名称 |
<四>.上传选定文件到服务器上
在前面工作都已经完成以后,就可以上传文件了,上传文件相对比较简单,就用下面2行语句就可以完成上传工作。
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
'显示上传文件属性 |
以上就是本软件在编写时的一些比较重要的地方。
三. 软件设计中的重要步骤及具体解决办法
<一>.选择本地要上传到服务器的文件
首先要感谢ASP.NET的强大功能,他提供的HTML控制元件,使得我们很容易的通过一个对话框来选择要上传的文件。当然你的浏览器也必须是IE 3.02 或者Netscape 3.0版本或者比这二者版本高的浏览器。通过下列语句就可以完成选择本地一个文件的工作:
<input id = " loFile " type = " file " runat = " server " > |
<二>.为了成功完成文件上传工作,在Form中的编码必须用" multipart/form-data " , 而不用From的缺省编码" application/x-www-form-urlencoded "。具体代码如下:
<form method = " post " enctype =" multipart/form-data " runat = " server ">
</form > |
<三>.获得上传的文件名称及对磁盘的若干操作
为了获得上传的文件名称,必须要引入一个名称空间( NameSapce ) --System.IO。此名称空间里面定义了许多关于文件及磁盘操作的类,在本软件中就是通过这些类的某些方法和属性来完成软件中的一些功能。
(1). 获得上传文件的名称
使用Path类中的GetFileName方法,具体如下:
lstrFileName = loFile.PostedFile.FileName
' 注: loFile.PostedFile.FileName 返回的是通过文件对话框选择的文件名,
这之中包含了文件的目录信息
lstrFileName = Path.GetFileName ( lstrFileName )
' 去掉目录信息,返回文件名称 |
(2). 判断上传目录是否存在,不存在就建立
建立目录要使用到Directory类中的 CreateDirectory 方法,判断目录是否存在要用到 Directory 类中的Exists方法。具体如下:
If ( not Directory.Exists( lstrFileFolder ) ) Then
Directory.CreateDirectory ( lstrFileFolder )
End If
' 注:lstrFileFolder是用户填入的目录名称,或者是缺省的目录名称 |
<四>.上传选定文件到服务器上
在前面工作都已经完成以后,就可以上传文件了,上传文件相对比较简单,就用下面2行语句就可以完成上传工作。
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
'显示上传文件属性 |
以上就是本软件在编写时的一些比较重要的地方。
分享到:
相关推荐
下面是一个示例代码,演示了如何在ASP.NET中实现FTP文件上传: ```csharp using System; using System.IO; using System.Net; public void UploadFileToFtp(string localFilePath, string ftpUrl, string username...
本文将深入探讨如何使用.NET进行FTP文件和文件夹的上传操作。 首先,我们需要引入`System.Net.FtpClient`命名空间,它包含了处理FTP连接和文件操作的类。如果你使用的是.NET Framework,这个命名空间已经包含在内;...
在这个“ASP.NET开发的webftp源码”项目中,开发者利用ASP.NET的技术特性实现了WebFTP服务,这是一种允许用户通过Web浏览器进行FTP文件传输的解决方案。 WebFTP的核心功能包括文件的上传、下载以及目录管理。在ASP...
在ASP.NET中,开发人员经常需要处理从远程服务器下载文件的需求,这可能涉及到通过URL或FTP协议访问资源。本文将详细讲解如何使用ASP.NET结合WebClient类来实现这个功能。 首先,我们需要理解URL(统一资源定位符)...
这意味着开发者或者学习者可以从这些源代码中了解如何利用ASP.NET来实现FTP客户端的功能,例如连接到FTP服务器、上传和下载文件、管理目录等。 【标签解析】 "毕业设计" 表明这可能是一个学生为了完成毕业项目而...
3. **文件上传**:FTP客户端应能选择本地文件并将其上传到服务器。这涉及到文件的读取、编码(如果需要的话)和传输。C#.NET提供了丰富的文件操作API,如`System.IO.FileStream`,可以用于读取本地文件,而`System...
ASP.NET FTP客户端设计与开发是基于微软的ASP.NET框架,用于构建能够与FTP(File Transfer Protocol)服务器交互的应用程序。FTP是一种广泛使用的网络协议,它允许用户上传、下载和管理远程服务器上的文件。在本项目...
在"ASP.NET+FTP客户端设计与开发"这个项目中,我们将深入探讨如何利用ASP.NET技术来创建一个FTP(File Transfer Protocol)客户端,从而实现文件的上传、下载以及管理功能。 FTP是一种标准的网络协议,用于在...
在这个"ASP.NET课程设计——留言板"项目中,我们将探讨如何利用ASP.NET技术和Access数据库来实现一个简单但功能完整的在线留言板系统。 首先,我们需要了解ASP.NET的基本结构和组件。ASP.NET页面由服务器控件、HTML...
ASP.NET FTP客户端设计与开发是基于微软的ASP.NET框架,用于构建能够与FTP服务器进行交互的应用程序。在本文中,我们将深入探讨如何使用ASP.NET来创建一个FTP客户端,包括其核心概念、关键技术以及源码分析。 FTP...
这个项目可能是一个学生的毕业设计作品,目的是展示如何利用ASP.NET技术来构建一个功能完备的FTP客户端应用程序。 【描述】:“asp.net FTP客户端设计与开发(源代码论文).rar”描述简洁明了,表明该压缩文件的内容...
本项目“ASP.NET FTP客户端设计与开发”旨在利用ASP.NET技术,构建一个功能完善的FTP客户端应用,适用于毕业设计或课程设计的需求。通过源代码分析,我们可以深入理解如何在ASP.NET环境中实现FTP功能,以下将详细...
本文将深入探讨如何利用ASP.NET技术来设计和开发一个FTP客户端,以及可能涉及的关键知识点。 首先,我们需要理解ASP.NET的基础。ASP.NET是由微软开发的一种Web应用程序框架,它允许开发者使用.NET Framework创建...
这个项目的核心是利用ASP.NET技术构建一个能够连接到FTP服务器,进行文件上传、下载、删除等操作的Web应用程序。下面我们将详细探讨涉及的知识点。 1. ASP.NET基础:ASP.NET是Microsoft开发的Web应用程序框架,它...
FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件...