多表单提交|多表单域无组件文件上传的例子

更新时间:2019-09-05 来源:热门资讯 点击:

【www.hzclsc.cn--热门资讯】

最近经常有人问到这类问题,在此转贴一下,内容:





1。数据库表结构(Access):

UserID:Text(保存上传文件的用户ID)

FileContentType:Text(用来保存上传文件的类型,eg:"Application/msword",主要用来使用户能正确下载此文件)

FileContent:OLE Object(保存文件数据)



2。html文件

muploadfile.htm





"这里用来表示开始文件数据上传

File to send:








"这里用来表示文件数据结束







3。asp文件

muploadfile.asp



127 Then

 ccc =ccc Chr(AscW(MidB(binstr,i+1,1) clow))

 skipflag=1

 Else

 ccc = ccc Chr(AscB(clow))

 End If

 Else

 skipflag=0

 End If

 Next

 End If

 bin2str = ccc

End Function





varByteCount = Request.TotalBytes

bnCRLF = chrB( 13 ) chrB( 10 )

binHTTPHeader=Request.BinaryRead(varByteCount) 

Divider = LEFTB( binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF ) - 1 )



"开始读非文件域的数据

Do while lenB(binHTTPHeader)>46

 

 binHeaderData = LeftB(binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF bnCRLF )-1)

 strHeaderData=bin2str(binHeaderData)



 lngFieldNameStart=Instr(strHeaderData,"name=" chr(34))+Len("name=" chr(34))

 lngFieldNameEnd=Instr(lngFieldNameStart,strHeaderData,chr(34))

 

 

 strFieldName=Mid(strHeaderData,lngFieldNameStart,lngFieldNameEnd-lngFieldNameStart)

 strFieldName=Trim(strFieldName)

 strFieldName=Replace(strFieldName,vbcrlf,vbnullstring)

 

 "判断文件数据时候开始

 If strComp(strFieldName,"FileUploadStart",1)=0 Then

 binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))

 exit do

 End if

 

 DataStart = INSTRB( binHTTPHeader, bnCRLF bnCRLF ) + 4

 DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - DataStart



 binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd )

 strFieldValue=bin2str(binFieldValue)

 strFieldValue=Trim(strFieldValue)

 strFieldValue=Replace(strFieldValue,vbcrlf,vbnullstring)



 "非文件上传域变量赋值

 execute strFieldName "=""" strFieldValue """"

 

 

 binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))

 

loop



"开始处理文件数据

Do while lenB(binHTTPHeader)>46

 

 

 binHeaderData = LeftB(binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF bnCRLF )-1)

 

 strHeaderData=bin2str(binHeaderData)

 

 "读取上传文件的Content-Type

 lngFileContentTypeStart=Instr(strHeaderData,"Content-Type:")+Len("Content-Type:")

 strFileContentType=Trim(Mid(strHeaderData,lngFileContentTypeStart))

 strFileContentType=Replace(strFileContentType,vbCRLF,vbNullString)

 

 "读取上传的文件名

 lngFileNameStart=Instr(strHeaderData,"filename=" chr(34))+Len("filename=" chr(34))

 lngFileNameEnd=Instr(lngFileNameStart,strHeaderData,chr(34))

 strFileName=Mid(strHeaderData,lngFileNameStart,lngFileNameEnd-lngFileNameStart)

 strFileName=Trim(strFileName)

 strFileName=Replace(strFileName,vbCRLF,vbNullString)

 

 "读取上传文件数据

 DataStart = INSTRB( binHTTPHeader, bnCRLF bnCRLF ) + 4

 DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - DataStart

 

 If strFileName"" Then

 

 binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd )

 

 "将上传的文件写入数据库

 set conn = Server.CreateObject("ADODB.Connection")

 conn.Open "DSN=abc"

 

 SQL="select * from User_File"

 set rs=server.CreateObject("ADODB.Recordset")

 rs.Open sql,conn,3,3

 rs.addnew

 rs("UserID")=UserID

 rs("FileContentType")=strFileContentType

 rs("FileContent").AppendChunk binFieldValue

 rs.update

 rs.close

 set rs=Nothing

 conn.Close

 set conn=Nothing

 

 End if

 

 binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))

 

loop

%>



4。下载用户上传的文件

lngPictSize Then Exit Do

Loop



rs.close

set rs=Nothing

conn.close

set conn=nothing

%>



就是这些了,希望此方法对大家能有所帮助。:)




本文来源:http://www.hzclsc.cn/news/26476.html

为您推荐

dnf鬼泣新buff换装|dnf鬼泣BUFF换装如何搭配 dnf起源版鬼泣BUFF换装搭配攻略

您的位置:首页 → 网游资讯 → dnf资讯 → dnf鬼泣BUFF换装如何搭配 dnf起源版鬼泣BUFF换装搭配攻略 dnf鬼泣BUFF换装如何搭配 dnf起源版鬼泣BUFF换装搭配攻略时间:201dnf资讯

2021-02-25 18:54:41   dnf鬼泣buff换装95   地下城鬼泣buff换装  

dnf流年鬼泣装备_dnf鬼泣起源版本装备搭配推荐 dnf黑暗君主起源版本加点攻略

2月1日DNF起源版本正式更新了,这次更新全职业平衡性将进行调整,所以这个版本DNF黑暗君主起源版本怎么加点?DNF黑暗君主起源版本用什么装备好?下面小编为大家爱带来了DNF黑暗君主起源版本加点攻略dnf资讯

2021-02-25 18:54:41   dnf鬼泣装备推荐   dnf鬼泣毕业装备  

【dnf黄金雄鹰图腾怎么升级】dnf黄金雄鹰图腾怎么得 黄金雄鹰图腾出现概率介绍

DNF游戏中成功建造传说图腾的小伙伴可以一次性拿到20个图腾精华,而普通的和特殊也才只给到6个,是普通 特殊的3倍还多,难怪这么多的玩家追求黄金雄鹰图腾了,毕竟有了它,组合出传说的概率非常的高。 为dnf资讯

2021-02-25 18:54:41  

[dnf起源剧情]dnf起源版本公会改动一览 dnf起源版本公会有哪些变动

全新的起源版本已经到来,这次改版的改动很大,甚至有些小伙伴都在游戏中迷路了,那么在全新的起源版本中公会有哪些变化呢?下面就让我们一起去了解一下DNF起源版本公会改动吧! DNF起源版本公会改动一览起dnf资讯

2021-02-25 18:54:41  

德特尔兽人族|dnf兽人族的特别宝物礼盒有什么 兽人族的特别宝物礼盒选择建议

兽人族的特别宝物礼盒打开后,可以在两种宝物礼盒中选择一种,远古兽人族的神秘宝物礼盒、兽人族英雄的宝珠礼盒,很多小伙伴不知道怎么选择才好,小编今天带来一篇DNF兽人族的特别宝物礼盒选择建议,希望大家喜dnf资讯

2021-02-25 18:54:41   怪物猎人世界老练的兽人族学者   兽人族永不为奴除非