欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

无组件文件上传代码实例

程序员文章站 2022-05-12 13:04:43
关于无文件上传的文章已经很多了,所以在这里我不想再解释无组件文件上传的原理。在asp中无法将二进制文件数据直接保存成文件,所以我们一般还是利用来保存用户上传的文件。1。数据库表结构(access(小...
关于无文件上传的文章已经很多了,所以在这里我不想再解释无组件文件上传的原理。在asp中无法将二进制文件数据直接保存成文件,所以我们一般还是利用来保存用户上传的文件。

1。数据库表结构(access(小型网站之最爱)):
userid:text(保存上传文件的用户id)
filecontenttype:text(用来保存上传文件的类型,eg:"application/msword",主要用来使用户能正确下载此文件)
filecontent:ole object(保存文件数据)

2。html文件
mpreviousfile.htm
<form name="upload_file" enctype="multipart/form-data" action="mpreviousfile." method=post>
<input type=hidden name="userid" value="abc">
<input type=hidden name="fileuploadstart"> 这里用来表示开始文件数据上传
file to send: <br>
<input type="file" name="file_up" size="30"><br>
<input type="file" name="file_up" size="30"><br>
<input type=hidden name="fileuploadend"> 这里用来表示文件数据结束
<input type=submit value=submit>
</form>

3。asp文件
mpreviousfile.asp

<%
response.expires=0
function bin2str(binstr)
    dim varlen,clow,ccc,skipflag

    skipflag=0
    ccc = ""
    if not isnull(binstr) then
        varlen=lenb(binstr)
        for i=1 to varlen
            if skipflag=0 then
                clow = midb(binstr,i,1)
                if ascb(clow) > 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))