文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院网络编程ASP支持中文的无组件文件上传:upload.inc
精品广告
推荐TOP10
·如何解密加密的ASP源代码
·PHP+MySQL 购物车程序实例
·ASP网站漏洞及入侵防范方法
·ASP网络安全
·1小时ASP入门
·初学ASP动态网页制作常用错误处理
·ASP实现网页打开任何类型文件都保存
·ASP技巧:使用FSO自动创建多级文件夹的函数
·轻松建站 主流ASP内容管理系统
·ASP教程:透彻掌握ASP分页技术
阅读TOP10
·WEB打印设置解决方案二(利用ScriptX.cab控件改变IE打印设置)
·无组件上传图片到数据库中,最完整解决方案
·从网页上下载控件时制作CAB包的方法
·automation服务器不能创建对象
·用ASP程序实现二级下拉列表
·URL重写可删节日期模式---正则表达式之强力应用
·asp中可以保存参数值的分页代码
·GridView控件自定义分页详解
·二级域名原理以及程序 申请即可开通
·WEB打印设置解决方案四(在ASP中实现网络打印功能)

支持中文的无组件文件上传:upload.inc

日期:2004年8月28日 作者:清风网络学院 查看:[大字体 中字体 小字体]


文件名:upload.inc
说明:支持中文的无组件文件上传ASP函数,由于ASP不支持二进制写入文件,所以存成文件时必须使用组件,本函数只提供截取上传文件的数据,可以写入到数据库。

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
Function GetUpload(FormData)
Dim DataStart,DivStr,DivLen,DataSize,FormFieldData
'分隔标志串(+CRLF)
DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) + 1)
'分隔标志串长度
DivLen = LenB(DivStr)
PosOpenBoundary = InStrB(FormData,DivStr)
PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr)
Set Fields = CreateObject("Scripting.Dictionary")

While PosOpenBoundary > 0 And PosCloseBoundary > 0
'name起始位置(name="xxxxx"),加6是因为[name="]长度为6
FieldNameStart = InStrB(PosOpenBoundary,FormData,str2bin("name=")) + 6
FieldNameSize = InStrB(FieldNameStart,FormData,ChrB(34)) - FieldNameStart '(")的ASC值=34
FormFieldName = bin2str(MidB(FormData,FieldNameStart,FieldNameSize))

'filename起始位置(filename="xxxxx")
FieldFileNameStart = InStrB(PosOpenBoundary,FormData,str2bin("filename=")) + 10
If FieldFileNameStart < PosCloseBoundary And FieldFileNameStart > PosopenBoundary Then
FieldFileNameSize = InStrB(FieldFileNameStart,FormData,ChrB(34)) - FieldFileNameStart '(")的ASC值=34
FormFileName = bin2str(MidB(FormData,FieldFileNameStart,FieldFileNameSize))
Else
FormFileName = ""
End If

'Content-Type起始位置(Content-Type: xxxxx)
FieldFileCTStart = InStrB(PosOpenBoundary,FormData,str2bin("Content-Type:")) + 14
If FieldFileCTStart < PosCloseBoundary And FieldFileCTStart > PosOpenBoundary Then
FieldFileCTSize = InStrB(FieldFileCTStart,FormData,str2bin(VbCrLf & VbCrLf)) - FieldFileCTStart
FormFileCT = bin2str(MidB(FormData,FieldFileCTStart,FieldFileCTSize))
Else
FormFileCT = ""
End If

'数据起始位置:2个CRLF开始
DataStart = InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf & VbCrLf)) + 4
If FormFileName <> "" Then
'数据长度,减1是因为数据文件的存取字节数问题(可能是AppendChunk方法的问题):
'由于字节数为奇数的图象存到数据库时会去掉最后一个字符导致图象不能正确显示,

[1] [2] [3] 下一页 

上一篇:支持中文的无组件文件上传:示例

下一篇:在ADO使用SELECT语法三


相关软件: 相关文章:
·《三国群英传2》秘籍
·传授追女孩之技巧之新手篇
·仙剑奇侠传3-问情篇:支线任务全攻略
·太阁立志传5-丰臣秀吉篇 - 游戏攻略
·jsp Smart Upload上传下载全攻略
·如何建立一个网站?规划、设计、目的、原则、宣传
·[三国孔明传]秘籍(GBA)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号