动易swCMS6.5网站多个文件的上传功能模块
2008-02-25 18:25
260 查看
动易swCMS6.5网站多个文件的上传功能模块
网站一般有单/多个文件的上传,但实现上传功能的核心代码是一样的
只是多文件的上传是循环执行了上传功能的代码而已
动易cms6.5网站的多文件上传功能模块由HTML在线编辑器的按钮调用
批量上传图片:editor_insertpic.asp 要求多文件的上传
上传图片:editor_Modifypic.asp
上传flash:editor_insertflash.asp
上传wmv影片:editor_insertmedia.asp
上传流媒体rm:editor_insertrm.asp
上传附件:editor_insertfujian.asp
除了HTML在线编辑器使用了上传页面外,
网站中还有其他地方使用到文件的上传功能,例如:
上传广告图片:Admin_Advertisement.asp
管理员上传下载频道的下载文件:Admin_Soft.asp
用户上传下载频道的下载文件:User/User_Soft_Code.asp
用户上传聚合空间的个人照片:User/ User_Photo_Code.asp
管理员管理聚合空间的用户照片:Admin_SpaceManage.asp
以上上传文件的页面表单内容的显示是根据Editor/Upload.asp文件后传递的参数决定的
所以以上文件上传页面都包含了对文件Upload.asp的引用
文件Upload.asp的内容很简单:只有两个过程的调用语句
Call ShowUploadForm
Call CloseConn
其唯一的作用就是根据不同的上传页面显示出相应的表单内容
表单调用的上传处理文件是:Upfile.asp
文件Upfile.asp的内容也很简单:
Server.ScriptTimeOut = 9999999
Call Execute '执行上传操作(该过程包括单/多文件的上传代码)
Call CloseConn
Upload.asp和Upfile.asp都包含了文件PowerEasy.Upfile.asp
因为过程ShowUploadForm()和Execute()的代码都包含在其中
下面我们重点对实现文件上传的Execute()过程代码的设计顺序进行分析:
1. 判断服务器是否支持FSO组件的使用,若否则退出过程,上传失败
2. 判断用户或管理员是否已登陆,未登陆则不能上传文件
子函数CheckLogin()的详细代码也在该文件中浏览
3. 对提交的上传文件的数据进行分析,例如:
是否上传了空文件,是否超出了上传文件大小的限制
4. 实现各上传页面要求上传文件存放的目录创建
5. 循环执行所有要上传的文件
若仅有单个文件上传,则成功上传该文件后退出循环。
若上传的是多个文件的上传则累计成功上传的文件个数后
继续循环执行下一个文件的上传
'===================实现文件上传的核心代码===================
Set oFilestream = Server.CreateObject("ADODB.Stream")
oFilestream.Type = 1
oFilestream.Mode = 3
oFilestream.Open
oUpFilestream.Position = cFileStart
oUpFilestream.CopyTo oFilestream, cFileSize
oFilestream.SaveToFile Server.MapPath(tmpPath) '保存文件
oFilestream.Close
Set oFilestream = Nothing
'============================================================
FileCount = FileCount + 1 '累计成功上传的文件个数
6. '=====根据上传文件的类型显示不同的成功提示信息=====
Select Case FileType
Case "batchpic" '批量上传图片
Response.Write "<li>第 " & i + 1 & " 张图片上传成功!"
……
Case "pic" '插入一张图片
……
Response.Write "图片上传成功!
……
Exit For '一张图片上传成功后就退出循环
… … … End Select
有些上传文件成功的HTML内容是保存在JS文件中的
这些细节可从上面的代码中看出
7. 成功上传单/多个文件后的的清理打扫工作:
Set PE_Thumb = Nothing '将图片文件处理类的对象(生成水印,生成缩略图)清除
'清除变量及ASP的Dictionary对象
Forms.RemoveAll
Set Forms = Nothing
Files.RemoveAll
Set Files = Nothing
oUpFilestream.Close ‘关闭并释放ASP的Stream对象
Set oUpFilestream = Nothing
Call ClearAspFile(SavePath & dirMonth) '删除上传目录中后缀名不允许的上传文件
'该过程位于文件PowerEasy.FSO.asp中,这是一项安全且节省空间的措施。
总结:
动易网站的上传文件模块重点关注四个文件:
Upload.asp
Upfile.asp
PowerEasy.Upfile.asp
PowerEasy.CreateThumb.asp上传图片的处理类(水印,缩略图)
上传文件的程序核心主要是对ASP知识点"ADODB.Stream"的应用
动易网站还使用了Dictionary对象。这两个ASP知识点我很少接触到。
由于该上传功能模块的编写比较针对整个动易网站系统,
且多文件的上传模块主要应用在提供网络硬盘的网站程序上
所以这个模块是否可通过其他网络硬盘网站获取一个简单小巧的模块程序呢
有空我会阅读一个网络硬盘的网站程序来看是否能很好地分离出多文件的上传模块
以便在一些适合的小网站中使用。
相关文章推荐
- 动易swCMS6.5网站的上传文件管理器及判断文件是否失效的功能模块分析
- 动易swCMS6.5网站的模板在线编辑功能模块
- ASP.NET网站文件上传下载功能
- 文件上传的实现 (马马 2001年09月28日 17:14) PHP同样支持上传文件的功能,但并不是所有支持PHP的网站都支持此功能,特别是免费的网站。 实现上传,首先要在HTML上加入上传文件的“<FORM>”表格。 <form me
- iOS实现文件上传功能模块
- JavaWeb开发之网站实现文件上传功能
- 实现HTTP协议Get、Post和文件上传功能——设计和模块
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
- PHP中文件上传的功能模块实现
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
- 通过WebClient的Postdata将上传文件功能放到另一个网站上去操作
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
- 添加ASP.NET文件上传功能为您的网站
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
- Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能 视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播
- 实现Nginx Upload 模块 功能上传文件。
- 给单位网站文章发布系统增加一个不完美的文件上传功能
- 通过WebClient的Postdata将上传文件功能放到另一个网站上去操作
- HTML5之拖放功能(多文件上传和元素拖放)
- Node.js开发教程之基于OnceIO框架实现文件上传和验证功能