参照本站的"无组件图片与文本同步存入数据库简单办法",请问如何判断没有上传图片的问题?Thanks.

nolight 2002-06-07 05:17:32
参照
http://www.csdn.net/expert/topic/597/597170.xml?temp=.6397516

如果没有上传图片,显示就会是一个空图片的方框。
请问能在upimage.asp里判断没有上传图片,和上传图片的大小吗?

另InstrB, Instr有什么区别?
看help说
The InStrB function is used with byte data contained in a string. Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.
说是InstrB返回字节的位置,并不理解.
自己测试
str1:123456.789 str2:456
Instr(str1,str2) = 4
InstrB(str1,str2) = 7
为什么?

...全文
21 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MeXP 2002-06-10
  • 打赏
  • 举报
回复
你用的是图文混合上传
你有一个文本框,要用我发给你的formdata.inc来处理,仿照我的代码来写,我重新发给你一个图文混传的例子
MeXP 2002-06-10
  • 打赏
  • 举报
回复
已经发送,请验收
nolight 2002-06-10
  • 打赏
  • 举报
回复
Thanks.
My Email:
lightlala@hotmail.com
如果我不在,可以发到我的Email里吗?
MeXP 2002-06-10
  • 打赏
  • 举报
回复
这样吧,如果在线给个回话,我把自己的代码,发给你
同时我也调试一下上面的代码,行吗?
nolight 2002-06-10
  • 打赏
  • 举报
回复
MeXP,参照你的提示,
首先我发现我又一处笔误
dataend=instrb(datastart+1,formdata,divider)-datastar少了一个t
dataend=instrb(datastart+1,formdata,divider)-datastart.

在没有上传图片的时候Len(Image)始终为1,其中各值为:
datastart:144
DataEnd:2
Len(Image):1


nolight 2002-06-10
  • 打赏
  • 举报
回复
Thanks. 这个问题已解决.
nolight 2002-06-07
  • 打赏
  • 举报
回复
First Thank MeXP.
不过Len(images)好像不行。我的代码如下:
a.htm
--------------------------------
<FORM name="form1" method="POST" action="upimg.asp" ENCTYPE=multipart/form-data >
标题:<INPUT type="text" name="title" size="30" maxlength="40">
<BR>>图片<INPUT type=file name="pic">
<input type="submit" value="新增" id=submit1 name=submit1></FORM>
--------------------------------
upimg.asp
--------------------------------
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)

FUNCTION ImageUp(formsize,formdata)
bncrlf=chrb(13)&chrb(10)
divider=leftb(formdata,instrb(formdata,bncrlf)-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastar
ImageUp=midb(formdata,datastart,dataend)
END FUNCTION
Image=ImageUp(FormSize,FormData)
IF Len(Image) > 0 THEN
Response.Write "AAA"
ELSE
Response.Write "0"
END IF
-------------------------------------
不论我输不输内容,显示的都是AAA.
Thanks.
MeXP 2002-06-07
  • 打赏
  • 举报
回复
改成这样
<%
FormSize = Request.TotalBytes ’得到数据
FormData = Request.BinaryRead( FormSize )

function ImageUp(formsize,formdata) ’这个函数的功能是截取其中的图像部分。
bncrlf=chrb(13) & chrb(10) ’做成函数后。以后你可以自己随意使用了。
divider=leftb(formdata,instrb(formdata,bncrlf)-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
imageup=midb(formdata,datastart,dataend)
end function

Image=ImageUp (FormSize,Formdata) ’这里就是图像部分了。
if len(Image)>0 then
set rs=server.CreateObject("adodb.recordset")
strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
sql="SELECT * FROM imgtable"
rs.Open sql,strconn,1,3

rs.AddNew ’因为表单二在表单一提交的过程中下提交了。
rs("img").appendchunk Image ’所以这里是添加。
rs.Update
rs.Close


response.contenttype="image/gif"
response.binarywrite imageup(formsize,formdata) ’这里是显示图像。表示成功!
else
response.write "图片提交未成功"
end if
%>


MeXP 2002-06-07
  • 打赏
  • 举报
回复
if len(mydata)=0 then
我一般这样判断

InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。instr返回的是字符位置
也就是说instrb表示从内存中第几个字节开始

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧