帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
在webclass中使用文件上传功能
作者: 发布时间:2005-03-12 来源:
Webclass实例:http://www.shinco.com/jjx/wcnews/news.asp
许多文件上传组件并不能在vb中正常使用,我测试了chinaasp fileup,aspSmartupload,aspupload
enterprise,inotesupload等组件,均不能正
常使用。其主要原因,是因为在vb中没有促发组件的OnStartPage过程。我们无法改写这些组件,所以要自己编码来解决这
个问题,记得以前有网友谈过这个问题,但没有代码贴出来。
其实以前chinaasp上有个编写web方式上载文件的组件的贴子(我一下找不了,这是我转贴的地址
http://www.shinco.com/jjx/activeubb/NewsDetail.asp?id=134,稍微改写一下就能在webclass中使用了

将原onstartpage过程改为
Public Sub OnStartPage(PassedRequest As Request)

'------------------定义局部变量----------------------
Dim varByteCount
Dim i
'---------------------------------------------------

'------------------建立ASP对象-----------------------
Set MyRequest = PassedRequest
'---------------------------------------------------

'------------------读取客户端传来的全部数据-----------
varByteCount = MyRequest.TotalBytes
lngArrayLen = varByteCount - 1
ReDim binArray(varByteCount - 1)
binArray = MyRequest.BinaryRead(varByteCount)
'---------------------------------------------------

'--------------------获取定界符---------------------
intDjfLen = 0
Do Until binArray(intDjfLen + 1) = 13
intDjfLen = intDjfLen + 1
Loop
ReDim binDjf(intDjfLen)
For i = 0 To intDjfLen
binDjf(i) = binArray(i)
Next
'---------------------------------------------------
End Sub

在webclass中使用

dim upload as new uploadfile
upload.onstartpage(request)

然后就可以用该类提供的方法了进行操作了,这个组件的功能比chinaasp upload要差些。但已经足够使用了

其他改动

1、为了能用getthevalue方法正确取得input type 为checkbox,radio等的值,在

FindtheName中加入错误处理
Private Function FindTheName(nm As String) As Long
On Error GoTo FindTheNameError
'******************************参数说明*****************************
'* *
'* nm: 要寻找的 Form 元素名 *
'* 返回值: 成功—— 找到时的地址,失败—— -1 *
'* *
'*******************************************************************

'------------------定义局部变量----------------------
Dim s As Long
Dim e As Long
Dim i As Long

Dim binTmp() As Byte
Dim strName As String
'---------------------------------------------------

'------------------寻找要取得值的Form 元素名------------------------
s = 0
Do While 1
    s = FindTheDjf(s)
    If s <> -1 Then
        s = s + intDjfLen + 41
        e = s
Do While binArray(e + 1) <> 34
e = e + 1
Loop
ReDim binTmp(e - s)
For i = s To e
binTmp(i - s) = binArray(i)
Next
strName = StrConv(binTmp, 64)
If StrComp(nm, strName) = 0 Then
FindTheName = e + 1
Exit Do
End If
Else
FindTheName = -1
Exit Do
End If
Loop
'--------------------------------------------------------------
Exit Function
FindTheNameError:
FindTheName = -1

End Function

2、删除类声明中的
Private MyScriptingContext As ScriptingContext定义
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·如何在Web页面中集成文件上传功能  (2005-03-12)
 ·关于web应用程序的范围与session  (2005-03-12)
 ·显示页面show.asp--基于web的QQ程  (2005-03-12)
 ·接收信息页面inform.asp--基于we  (2005-03-12)
 ·发送信息页面send.asp--基于web的  (2005-03-12)
 ·在Web页面中执行Windows程序  (2005-03-12)
 ·基于WEB系统的多语言支持--ASP国  (2005-03-12)
 ·在WEB环境下打印报表的crystal的  (2005-03-12)
 ·用ASP和SQL实现基于Web的事件日历  (2005-03-12)
 ·基于Web服务的应用、解决方案和开  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统