数据表test的结构是:
id|img
id为文本,img问ole对象
upload.asp:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="include/function.inc"-->
<%
conn=createconnection("database/test.mdb")
set t=server.CreateObject("adodb.recordset")
sql="select * from test"
t.open sql,conn,1,3
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
只需要告诉循环的次数n,返回是mydata数组
%>
<%
data=gainformdata(2)
%>
<%
t.addnew
t(0)=binarytostring(data(0)
t(1).appendchunk=data(1)
t.update
%>
报错为:
Microsoft VBScript 运行时错误 错误 800a000d
类型不匹配: binarytostring
/kxs/testupload.asp,行34
我觉得data(0)就是二进制数据嘛,怎么会不匹配呢?想不通……
请大家不论赐教
“id为文本,img问ole对象”什么意思啊?
img的数据类型是什么啊?
二进制要用ADODB.Stream写入数据库
可以设数据库字段为TEXT
这样图片和文字就可以一起保存,还可以加HTML,就是EDITOR
为什么不用无组件上传?
图象的二进制数据跟本就没有写到库里面,你可以在库里看一下
另一种上传图片的方法是,采用固定位置,直接传到,站点的文件夹里面
再使用自动生成号的形式引用
推荐三篇文章,前两篇讲基础,最后一篇是完整解决方案,希望对你有所帮助。
http://www.csdn.net/develop/article/19/19253.shtm
http://www.csdn.net/develop/article/19/19179.shtm
http://www.csdn.net/develop/article/19/19615.shtm
如果有是做个人网站,又或是一般中小型企业网站,上传文件并不多,可以使用无组件上传即可,如果是门户网站,或是上传文件较多的,建议采用组件。
thanks
用稻香老农的无组件可以做到图文并传!没有问题,我就可以,呵呵
看到你的消息,恭喜成功!