上一篇:在ASP文件中调用DLL >>
如何使用ASP建立虚拟的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
下一篇:常用ASCII 码对照表 >>
相关文章:
- · DHTML技巧--网页文字选取
- · 显示资料搜寻中的百分比
- · 用ASP获取别的网页的内容
- · 掌握ASP其实只需要6步
- · 运行asp脚本的asp脚本(原作:V37)
- · 在ASP.NET中创建自定义配置节(翻译)
- · 怎么学习asp 给非专业的asp爱好者
- · ASP中存储过程调用的两种方式及比较
- · 初看ASP-针对初学者
- · 在ASP中使用SQL语句之1:SELECT 语句
- · include文件的利弊及其安全性
- · 对初学者的:自助友情链接(企业在线管理)来做着玩一下...(一
- · 加密你的ASP页面—Script Encoder初探
- · ASP初学者参考!
- · 整理了一些ASP初学者常用的代码
- · ASP中一个字符串处理类(加强)(VBScript)
- · WEB环境下办公自动化文档修改痕迹保留的实现
- · 用stream读文件
- · ASP初学者参考!
- · 关于asp调试出错信息
- · 对文件夹操作2
- · 对文件的操作1
- · 如何动态ASP文件
- · 不用组件的简单分页
- · 鼠标在文本上移动时层的显示与消失
- · ASP 编程中 20 个非常有用的例子——适合初学者
- · 什么是Global.asa文件
- · ASP初学者怎样快速入门
- · asp学习入门经验谈
- · 关于#include的说明
- · 跟我学做留言本(二)
- · 遍历目录以及目录下文件的函数
- · 如何取得所有的Session变量
- · 函数型显示翻页连接
- · 关于错误信息的显示
- · 怎样开始一个ASP网站的设计
- · 网络程序设计中的模块化思维
- · DHTML对象模型(About the DHTML Object Model)(三)
