原创的ASP文件上传函数库,比动网、amao的都差了很多,不过是学习的好资料
2005-06-28 16:12
453 查看
原创的ASP文件上传函数库,比动网、amao的都差了很多,不过是学习的好资料
54powerman
说明:
如果你需要file表单的串值,用GetFullName("file")
如果需要file表单的文件名,用GetFileName("file")
如果需要file表单的扩展名,用GetExtName("file")
如果需要普通文本表单的值,用MyRequest("password")
如果需要file表单的二进制值,也是用MyRequest("file")
保存文件用SaveFile("file","myUpload.jpg")
写入数据库的格式:
Rs.AppandChunk MyRequest("file")
<%
'Program:54powerman
'EMail & MSN:54powerman@163.com
'QQ:19486554
'初始化数据
Response.buffer=true
FormData = Request.BinaryRead(Request.TotalBytes)
bncrlf = ChrB(13)&ChrB(10)
Set sr=CreateObject("Adodb.Stream")
sr.Mode=3
sr.Type=1
sr.Open
sr.Write FormData
Init=sr
'常用函数
Function Str2B(Str)
For i = 1 To len(Str)
Str2B = Str2B&ChrB(Asc(Mid(Str,i,1)))
Next
End Function
Function B2Str(Str)
For i = 1 To LenB(Str)
ThisCharCode = AscB(MidB(Str,i,1))
If ThisCharCode < &H80 Then
B2Str = B2Str & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(Str,i+1,1))
B2Str = B2Str & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
End Function
Function MyRequest(FormName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
MyRequest=null
DataStart=inStrb(Cur,FormData,bncrlf&bncrlf)+4
DataEnd = inStrb(DataStart+1,FormData,divider)-DataStart
TempStr = Midb(FormData,Cur,DataStart)
If inStrb(TempStr,Str2B("filename=")) Then
MyRequest = Midb(FormData,DataStart,DataEnd)
else
MyRequest = B2Str(Midb(FormData,DataStart,DataEnd))
End If
End Function
Function GetFullName(FormName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
DataStart=inStrb(Cur,FormData,Str2B("filename="))+10
DataEnd = inStrb(DataStart+1,FormData,ChrB(34))-DataStart
TempStr = Midb(FormData,Cur,DataStart)
GetFullName = B2Str(Midb(FormData,DataStart,DataEnd))
End Function
Function GetFileName(FormName)
FullName=GetFullName(FormName)
GetFileName = Mid(FullName,InStrRev(FullName,"/")+1)
End Function
Function GetExpName(FormName)
GetExpName = Mid(GetFileName(FormName),InStrRev(GetFileName(FormName),".")+1)
End Function
Function SaveFile(FormName,FileName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
SaveFile=false
DataStart=inStrb(Cur,FormData,bncrlf&bncrlf)+4
DataEnd = inStrb(DataStart+1,FormData,divider)-DataStart
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
sr.Position=DataStart-1
sr.CopyTo dr,DataEnd
dr.SaveToFile FileName,2
sr.Close
set sr=nothing
dr.Close
set dr=nothing
SaveFile=true
End Function
Function FileSize(FormName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
FileSize=0
DataStart=inStrb(Cur,FormData,bncrlf&bncrlf)+4
FileSize = inStrb(DataStart+1,FormData,divider)-DataStart-2
End Function
%>
54powerman
说明:
如果你需要file表单的串值,用GetFullName("file")
如果需要file表单的文件名,用GetFileName("file")
如果需要file表单的扩展名,用GetExtName("file")
如果需要普通文本表单的值,用MyRequest("password")
如果需要file表单的二进制值,也是用MyRequest("file")
保存文件用SaveFile("file","myUpload.jpg")
写入数据库的格式:
Rs.AppandChunk MyRequest("file")
<%
'Program:54powerman
'EMail & MSN:54powerman@163.com
'QQ:19486554
'初始化数据
Response.buffer=true
FormData = Request.BinaryRead(Request.TotalBytes)
bncrlf = ChrB(13)&ChrB(10)
Set sr=CreateObject("Adodb.Stream")
sr.Mode=3
sr.Type=1
sr.Open
sr.Write FormData
Init=sr
'常用函数
Function Str2B(Str)
For i = 1 To len(Str)
Str2B = Str2B&ChrB(Asc(Mid(Str,i,1)))
Next
End Function
Function B2Str(Str)
For i = 1 To LenB(Str)
ThisCharCode = AscB(MidB(Str,i,1))
If ThisCharCode < &H80 Then
B2Str = B2Str & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(Str,i+1,1))
B2Str = B2Str & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
End Function
Function MyRequest(FormName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
MyRequest=null
DataStart=inStrb(Cur,FormData,bncrlf&bncrlf)+4
DataEnd = inStrb(DataStart+1,FormData,divider)-DataStart
TempStr = Midb(FormData,Cur,DataStart)
If inStrb(TempStr,Str2B("filename=")) Then
MyRequest = Midb(FormData,DataStart,DataEnd)
else
MyRequest = B2Str(Midb(FormData,DataStart,DataEnd))
End If
End Function
Function GetFullName(FormName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
DataStart=inStrb(Cur,FormData,Str2B("filename="))+10
DataEnd = inStrb(DataStart+1,FormData,ChrB(34))-DataStart
TempStr = Midb(FormData,Cur,DataStart)
GetFullName = B2Str(Midb(FormData,DataStart,DataEnd))
End Function
Function GetFileName(FormName)
FullName=GetFullName(FormName)
GetFileName = Mid(FullName,InStrRev(FullName,"/")+1)
End Function
Function GetExpName(FormName)
GetExpName = Mid(GetFileName(FormName),InStrRev(GetFileName(FormName),".")+1)
End Function
Function SaveFile(FormName,FileName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
SaveFile=false
DataStart=inStrb(Cur,FormData,bncrlf&bncrlf)+4
DataEnd = inStrb(DataStart+1,FormData,divider)-DataStart
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
sr.Position=DataStart-1
sr.CopyTo dr,DataEnd
dr.SaveToFile FileName,2
sr.Close
set sr=nothing
dr.Close
set dr=nothing
SaveFile=true
End Function
Function FileSize(FormName)
divider = leftb(FormData,inStrb(FormData,bncrlf)-1)
Cur = inStrb(FormData,Str2B("name=")&ChrB(34)&Str2B(FormName)&ChrB(34))
FileSize=0
DataStart=inStrb(Cur,FormData,bncrlf&bncrlf)+4
FileSize = inStrb(DataStart+1,FormData,divider)-DataStart-2
End Function
%>
相关文章推荐
- [原创]java WEB学习笔记72:Struts2 学习之路-- 文件的上传下载,及上传下载相关问题
- asp.net下CKFinder IE浏览器中上传图片文件时提示“无效文件名或文件夹名称”的解决方法(原创文章)
- 【原创】Struts2学习笔记之文件的上传与下载
- 文件上传与下载学习笔记(2)---多文件、单文件、多个单文件函数封装
- 文件上传与下载学习笔记(2)---多文件、单文件、多个单文件函数封装
- php Socket模拟表单上传文件函数_学习
- 在ASP中利用ADO显示Excel文件内容的函数[原创]
- 【原创】Ext 上传文件,前后台实现, Asp.net 代码
- 对于asp.net mvc你可以到这里看到很多学习资料
- 关于PHP-Zend framework2 框架 学习过程。 阅前须知: ZF2中的配置文件是可以静态文件配置来注册和通过相关函数动态注册。 1.EventManager(事件驱动),关于事件驱动,在ZF2相关资料没有详细说明,可以参考ANDROID的事件驱动,MFC的消息响应/事件驱动。
- [原创]java WEB学习笔记50:文件上传案例
- ASP.NET上传文件函数
- asp.net 文件上传下载相关资料汇集
- 【原创】ASP.ENT C# 文件下载函数
- 简单原始的ASP.NET WEBFORM中多文件上传【参考其他资料修改】
- 学习ASP.NET Core Razor 编程系列十五——文件上传功能(三)
- [原创]基于asp.ent MVC的无刷新文件上传组件
- 学习ASP.NET Core Razor 编程系列十四——文件上传功能(二)
- 【原创】asp.net(C#)上传图片(文件)类
- 简单学习ASP.NET中文件的上传与下载