asp遇到的小问题

今天碰到一个BT的asp问题,其实就是图片和文字信息的同时上传,我本来用的是aspload来上传文件,并且用upload.form来获取提交页面中的表单数据,结果在一个页面中能成功获取数据,而另一个页面中却不能获取数据,我仔细对照看了看,发现少了一个Count = Upload.Save(t3path),于是我上网查了下,嘿~~还真给我查到了,在实例upload被save之前,upload.form不能用.....那就好办拉,我就加上被~~结果又出现另一个问题,原来上传文件成功的页面出现"leftB 函数或过程不能执行"的错误, 我就晕死,明明刚才还能运行的....难道是Upload.Save的问题?我试着把Upload.Save这句话给屏蔽了,果然我没猜错,上传文件成功,但是不能获取表单数据.看来Upload.Save和上传文件(其实就是图片)的代码有冲突..据我个人猜测,有可能2种代码都同时利用到内存,然后就冲突了....

上传文件的代码采用的如下:
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13)&chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set rs=server.createobject("ADODB.recordset")
rs.open "select * FROM imgurl",conn,3,3
rs.addnew
rs("img").AppendChunk myData
rs.update
rs.close
set rs=nothing
set conn=nothing
response.redirect "index.asp"
网络上一搜就能搜到了

解决方法:
我在网上搜到了2个函数,调用这2个函数就可以直接进行图文上传了.哈哈~~~
代码如下:
Function BinaryToString(str)
strto = ""
for i=1 to lenb(str)
if AscB(MidB(str, i, 1)) > 127 then
strto = strto & chr(Ascb(MidB(str, i, 1))*256+Ascb(MidB(str, i+1, 1)))
i = i + 1
else
strto = strto & Chr(AscB(MidB(str, i, 1)))
end if
next
BinaryToString=strto
End Function
function gainformdata(n)
dim formsize,formdata,divider,datastart,dataend
redim mydata(n-1)
formsize = Request.TotalBytes
formdata = Request.BinaryRead(formsize)
for i=1 to n
bncrlf = chrB(13) & chrB(10)
divider = leftB(formdata,clng(instrB(formdata,bncrlf))-1)
datastart = instrB(formdata,bncrlf & bncrlf)+4
dataend = instrB(datastart+1,formdata,divider) - datastart-2
mydata(i-1) = midB(formdata,datastart,dataend)
formdata=rightB(formdata,clng(formsize-instrB(datastart+1,formdata,divider))+1)
formsize=lenB(formdata)
next
gainformdata=mydata
end function

Demo:
a.htm:
<form name="form1" method="post" action="b.asp" enctype="multipart/form-data">
<textarea name="txt"></textarea>
<input type="file" name="file">
<input type="submit" name="Submit" value="提交">
</form>
b.asp:
'链接数据库
data=gainfromdata(2)
rs("txt")=binarytostring(data(0))
rs("img").appendchunk=data(1)

 

这个故事告诉我们:有问题,找baidu和google,追求牛人的境界,没有最牛,只有更牛! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值