当前位置: 首页 > 图文教程 > 网络编程 > ASP > 如何使用ASP建立虚拟的FTP服务器

ASP
提高SQL的执行效率的ASP的五种做法
asp的offset的一个go to page
asp中command的在单条记录时,有些字段显示为空的问题
asp,php一句话木马整理方便查找木马
asp 合并记录集并删除的sql语句
asp下循环一行多少个
asp循环行数输出函数
asp access重新开始编号
ASP生成数字相加求和的BMP图片验证码
静态页面利用JS读取cookies记住用户信息
比较详细的Asp伪静态化方法及Asp静态化探讨
asp Response.flush 实时显示进度
Asp高级故障解决以及相关代码
asp智能脏话过滤系统v1.0
ASP文件中的安全问题
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
asp两组字符串数据比较合并相同数据
asp MYSQL出现问号乱码的解决方法
asp文章中随机插入网站版权文字的实现代码
ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

如何使用ASP建立虚拟的FTP服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 184 ::
收藏到网摘: n/a

 

  在ASP中采用组件或无组件上传技术,均可以实现文件的上传功能。由此我们可以采用ASP的无组件上传技术,在我们自己的网站上建立一个虚拟的FTP服务器,象真正的FTP服务器一样,为多个用户提供远程文件的管理,同时各个用户只能操作自己的文件。

  当文件上传的时候,ASP可以采用FSO或数据库方式来保存文件数据(有些服务器并没有提供FSO功能)。这里我采用数据库来保存用户所上传的文件,采用数据库的优点我就不说了,总之很多。还有一个原因就是IIS限制了文件上传的大小(大概最大200KB吧),使用数据库方式可以采用续传技术突破这个限制,可以上传很大的文件,很大很大,无限大,……。

*****************
(哈哈,废话讲了一大堆,下面先讲讲实现的原理和方法,然后再讲使用软件实现的方法)
*****************

● 第一步:在服务器上建立一个数据库(ACCESS、SQL-SERVER、MYSQL均可以),简单一点就ACCESS吧。数据库内建立两个表:
  上传用户管理用:admin(ID, Name, Password, Type)
  保存上传文件数据:files(ID, ParentID, FileName, FileLength, FileType, FileData, UpDate, UserID)。
  如果FileLength=0,则表示其为文件夹,并且为每个用户建立一个根文件夹。

● 第二步:建立用户登陆页面,并使用SESSION将用户的ID保存起来,用于限制其对文件的操作。
  Session("Name") = list("SName")
  Session("UID") = list("ID")

● 第三步:建立用户主页面(显示用户上传过的文件)
  strSQL = "SELECT * FROM files WHERE ParentID=" & userRootID ' userRootId 为用户根文件夹的ID
  strSQL = strSQL & " AND UserID=" & SESSION("UID")
  strSQL = strSQL & " ORDER BY FileName"

● 第四步:上传文件页面
  list.AddNew
  list("ParentID") = userRootID
  list("FileName") = Form("Name")
  list("FileLength") = Form("Length")
  list("FileType") = Form("Type")
  list("FileData").AppendChunk MidB(sdata,Form("Start"),Form("Length"))
  list("UserID") = Session("UID")
  list("UpDate") = Now()
  list.Update

● 第五步:文件管理操作(使用文件的ID对文件进行表识,并且对用户的操作进行限制)
  删除:"DELETE * FROM files WHERE ID=" & iID & " AND UserID=" & Session("UID")
  下载:"SELECT * FROM files WHERE ID=" & iID & " AND UserID=" & Session("UID")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open myConnStr
Set list = conn.Execute("SELECT * FROM files WHERE ID=" & iID & " AND UserID=" & Session("UID"))
If NOT list.EOF Then
If list("FileLength") > 0 Then
  Response.AddHeader "Content-disposition", "inline; filename=" & list("FileName")
  Response.ContentType = list("FileType")
  Response.Binarywrite(list("FileData").GetChunk(list("FileLength")))
End If
End If

● 再完成一些其他的辅助操作页面即可。当然由于浏览器的限制,文件上传的续传技术不能直接使用,只能通过客户端软件来实现。网络上有个软件叫“上传文件管理器”(包含ASP源代码),实现了上面的功能。下面我们将讨论如何利用这个软件来建立我们自己的虚拟FTP服务器。

软件下载地址:http://www.blue999.com/webfiles/uploadfiles_setup.exe

***************
(很复杂吧,简单点,下面看一下使用“上传文件管理器”实现虚拟FTP服务器的方法)
***************

● 1、下载软件安装后,将随软件提供的ASP文件使用FTP软件上传到网站上(如上传到 webfiles 下)

● 2、执行客户端软件,并将服务器路径设置成上传的文件夹,超级管理员的用户名和密码均为 admin