怎么总没人回复??真的很急!请帮帮我,谢谢!~500分~~~

zhyindividual 2004-07-15 02:03:09
<!--#include file="conn.asp"-->
<!--#include file="inc/vb.asp"-->
<%

'叛断Session变量是否超时
if isempty(session("u_id")) or session("u_id")="" then
response.redirect "timeout.asp"
end if

if session("u_id")=1 then response.redirect "notreg.asp"
dim rs
dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata
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)

conn.Execute("Update larchives set photo=photo+1 where user_id=" & session("u_id"))'此用户相片数加1
%>
'不加上connpic.asp这个包含文件就出现如下出错提示.
'Microsoft VBScript 运行时错误 错误 '800a0005'
'无效的过程调用或参数: 'leftB'
'/addpic.asp,行 20
'前面的conn.asp采用的SQL server数据库
'此处的connpic.asp是ACCESS数据库
<!--#include file="connpic.asp"-->
'文件内容就是连接ACCESS数据库
<%
conn.Execute("Update pic set [index] = 0 Where user_id =" & Session("u_id"))
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "pic",conn,3,2
rs.addnew
rs("big").appendchunk mydata
rs("user_id")=session("u_id")
rs("size")=formsize
rs("date")=now
rs("index")=1
rs.update
set rs=nothing
set conn=nothing
%>
...全文
231 39 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
aspczlover 2004-07-16
  • 打赏
  • 举报
回复
呵呵 关键在于这种提交方式
<form enctype="multipart/form-data" action="process.asp" method=post >

Form的属性设置的时候,我们应该设置编码方式为:enctype="multipart/form-data",这样,才可以正确上传文件

用了这样的方式后就不能用request.form来接收表单数据
用response.write 输出好像没问题的,你具体用了它的什么方法啊?
zhyindividual 2004-07-16
  • 打赏
  • 举报
回复
感谢 ASPCZLOVER(执子之手...)的耐心解释.问题得到了解决,原来真正的问题在于Addpic.asp(即获取上传数据的文件)中不能有Response对象.(当然,使用ACCESS数据库可以,目前我还不知道是为何)

对了,希望ASPCZLOVER(执子之手...)看到回复后,告诉我
zhyindividual 2004-07-16
  • 打赏
  • 举报
回复
嗯,很是谢谢你~
总算把问题解决了.
在我这似乎不是不能用Request,而是Response对象,
真的好奇怪.
当我使用Response时,例如,图片存入数据库后我得转向另一个页面:
Response.Redirect pagename
则提示出错(即我的帖子表述一样的错误)
我的具体解决方法是,自己写了一个过程,然后通过调用这个过程,采用Javascript方法转向另一个页面
我在代码后面加上了这么一条
pageTo "图片上传成功,请点击确定继续!","pagename"
则通过了.
(pageTo是我自己写的一个过程,源代码如下:
<%
Const ConText1="<html><head><meta http-equiv=Content-Type content=text/html; charset=gb2312><title>提示</title><meta http-equiv=pragma content=no-cache>"
Const ConText2="</head><body></body></html>"

sub pageTo(alerttext,topage)
response.write ConText1&"<SCRIPT language=JavaScript>alert('"&alerttext&"');location.href='"&topage&"';</SCRIPT>"&ConText2
response.end
end sub
.......
%>
aspczlover 2004-07-16
  • 打赏
  • 举报
回复
只要相应的语句正确
好像和数据库关系不大
aspczlover 2004-07-15
  • 打赏
  • 举报
回复
我也好累了...
走了~
祝你成功!
aspczlover 2004-07-15
  • 打赏
  • 举报
回复
我觉得只要提交了图片,断然不会出现那种leftb的错误

建议你先把别的数据库操作去掉,比如
rs.open "select * from larchives where user_id=" & session("u_id"),conn,3,2
if rs("photo")>9 then setAlert("对不起,最多只能上传10张相片")
rs("photo")=rs("photo")+1
rs.update
rs.close

SQLStr="Update pic set index =0 Where user_id =" & Session("u_id")
conn.execute (SQLStr)

新建一个测试表ceshi,单纯的试一下把图片存入数据库
如下,再不行我也无能为力了
Set rs = Server.CreateObject("ADODB.Recordset")
sqlstr="SELECT * FROM [ceshi]"
rs.Open sqlstr,conn,3,2
rs.addnew
rs("img").appendchunk mydata
rs.update

aspczlover 2004-07-15
  • 打赏
  • 举报
回复

uploadphoto.asp

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>

<body>
<form enctype="multipart/form-data" action="process.asp" method=post >
<table border="0" width="422" cellspacing="0" cellpadding="0" style="border-collapse: collapse" height="60">
<tr>
<td width="420" height="40">   上传相片: 
<input type="file" name="big" size="20" class="put">
  
<input type="submit" value=" 上传 " name="B3" class="put1">
</td>
</tr>
</table>
</form>
</body>

</html>





addpic.asp


<!--#include file="../conn.inc"-->

<%

叛断Session变量是否超时
if isempty(session("u_id")) or session("u_id")="" then
response.redirect "timeout.asp"
end if

if session("u_id")=1 then response.redirect "notreg.asp"
dim rs
dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata
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 larchives where user_id=" & session("u_id"),conn,3,2
if rs("photo")>9 then setAlert("对不起,最多只能上传10张相片")
rs("photo")=rs("photo")+1
rs.update
rs.close

SQLStr="Update pic set index =0 Where user_id =" & Session("u_id")
conn.execute (SQLStr)

sqlstr="SELECT * FROM [pic]"
rs.Open sqlstr,conn,3,2
rs.addnew
rs("img").appendchunk mydata
rs("user_id")=session("u_id")
rs("size")=formsize
rs("date")=now
rs("index")=1
rs.update

set rs=nothing
set conn=nothing
%>
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
但是在我这真真正正的出现这种错误呀,我搞这个东西搞了一天了.
真晕死了,谢谢你~,我现在得回家了.你把完全可以运行的两个文件(我不用修改任何东西)写好给我吧.如果可以,我明天给分给你~
aspczlover 2004-07-15
  • 打赏
  • 举报
回复
我试了啊
很正常啊
没有你说的那种错误
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
aspczlover(执子之手...) 真诚感谢你的回答,不过还是出现那个提示呢,希望能帮我认真看代码,给我解决一下,谢谢!
aspczlover 2004-07-15
  • 打赏
  • 举报
回复
我也快晕了
<form name="你的页面名" enctype="multipart/form-data"
action="process.asp" method=post>
----》
<form name="mainForm" enctype="multipart/form-data"
action="你的页面名" method=post>
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
Addpic.asp
<!--#include file="conn.asp"-->
<!--#include file="inc/vb.asp"-->
<%

'叛断Session变量是否超时
if isempty(session("u_id")) or session("u_id")="" then
response.redirect "timeout.asp"
end if

if session("u_id")=1 then response.redirect "notreg.asp"
dim rs
dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata
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 larchives where user_id=" & session("u_id"),conn,3,2
if rs("photo")>9 then setAlert("对不起,最多只能上传10张相片")
rs("photo")=rs("photo")+1
rs.update
rs.close
set rs=nothing

Dim SQLStr
SQLStr="Update pic set index =0 Where user_id =" & Session("u_id")
conn.execute (SQLStr)
rs.Open "pic",conn,3,2
rs.addnew
rs("big").appendchunk mydata
rs("user_id")=session("u_id")
rs("size")=formsize
rs("date")=now
rs("index")=1
rs.update

set rs=nothing
set conn=nothing
%>
aspczlover 2004-07-15
  • 打赏
  • 举报
回复
帮你修改过的你试试,必须要用upload.asp页哦,修改一下form即可
<form name="你的页面名" enctype="multipart/form-data"
action="process.asp" method=post>


<!--#include file="conn.asp"-->
<!--#include file="inc/vb.asp"-->
<%

'叛断Session变量是否超时
if isempty(session("u_id")) or session("u_id")="" then
response.redirect "timeout.asp"
end if

if session("u_id")=1 then response.redirect "notreg.asp"

response.buffer=true

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)

conn.Execute("Update larchives set photo=photo+1 where user_id=" & session("u_id"))'此用户相片数加1

conn.Execute("Update pic set [index] = 0 Where user_id =" & Session("u_id"))

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM [图片表]",conn,1,3
rs.addnew
rs("big").appendchunk mydata
rs("user_id")=session("u_id")
rs("size")=formsize
rs("date")=now
rs("index")=1
rs.update
set rs=nothing
set conn=nothing
%>
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
不行,还是出现无效的参数(过程)错误提示~~~
我晕了
以下我给出我的源文件代码,希望能帮我解决,晕~~
UploadPhoto.asp

<form enctype="multipart/form-data" action="addpic.asp" method=post onSubmit="return mysubmit(this)">
<table border="0" width="422" cellspacing="0" cellpadding="0" style="border-collapse: collapse" height="60">
<tr>
<td width="420" height="40">   上传相片: 
<input type="file" name="big" size="20" class="put">
  
<input type="submit" value=" 上传 " name="B3" class="put1">
</td>
</tr>
</table>
</form>
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
是真的吗?那么有什么方法可以解决这个问题呢?
怎么用ACCESS数据库就可以?
aspczlover 2004-07-15
  • 打赏
  • 举报
回复
我这两个页面测试了,上传到sqlserver数据库
保证能用,你稍做修改即可:
upload.asp


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>

<body>
   <form name="mainForm" enctype="multipart/form-data"

action="process.asp" method=post>

    <input type=file name=mefile size="20"><br>

   <input type=submit name=ok value="OK">

   </form>
</body>

</html>





process.asp

<!--#include file="../conn.inc"-->

<%

response.buffer=true

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 rec=server.createobject("ADODB.recordset")

rec.Open "SELECT * FROM [ceshi]",conn,1,3

rec.addnew

rec("img").appendchunk mydata

rec.update

rec.close

set rec=nothing

set connGraph=nothing

%>

aspczlover 2004-07-15
  • 打赏
  • 举报
回复
'Microsoft VBScript 运行时错误 错误 '800a0005'
'无效的过程调用或参数: 'leftB'
--》
是因为页面没接收到数据
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
数据库中存储图片的是Image类型~
ycted 2004-07-15
  • 打赏
  • 举报
回复
你换成了sql server数据库,那么你是否将存储img的数据库字段设置为image类型啊?

如:
Create table img --创建用来存储图片的表,命名为img
(
id int identity(1,1) not null,
img image
)
看是不是这个字段的原因.
zhyindividual 2004-07-15
  • 打赏
  • 举报
回复
感谢各位的回答,不过你们似乎都误解了我的本意(对不起,可能是我的语言表达不是很清楚)
在这我讲一下问题的根本:
使用纯ASP代码实现图片上传到数据库的源代码(完全可以运行的)我买的一本ASP书上有的,而我之前也是完全按照它一字一字敲到电脑里,也是可以运行的,但那都是采用的ACCESS数据库.
但现在我想换成SQL数据库,当我一换,则出现LeftB(当然,其他的诸如MidB,InstrB...也会)都会被提示为无效的过程或参数.网上也有很多实例讲ASP无组件上传,但采用这种方法的基本上都是同出一辙,即都是用的ACCESS数据库作实例讲解.而没有一个是采用SQL的,现在我的问题就是如何实现采用SQL数据库而实现无组件图片上传到数据库!

以下回复部分网友的问题.
1.chang1216(andy):为什么要用两个数据库阿? 两个数据库的连接 结果集 名称有没有问题
还有 rs.Open "pic",conn,3,2 这里的 pic 在哪里啊?没有定义阿!!!
回复:之所以用两个数据库是由于如果仅采用SQL数据库则出现如上的错误,所以不得不采用两个,而我的问题也是如此了.即只采用SQL数据库.而 rs.Open "pic",conn,3,2中的"pic" 是存放图片的数据表.

2.LeftB函数的返回值,及是否变量未赋值以及各位提的有可能的语法错误在这里都不属于考虑范围之内了.这些都没有问题的.这里的问题只是采用ACCESS数据库程序可以完好运行,而换成SQL数据库则出错.

3.有网友说我的问题他们不是很明白,我想可能是你们没理解我的意思,问题我已经说得很清楚了.如果你有意帮我解决,请仔细看下我的描述.谢谢.

4.ncslsxgzxx(ncslsxgz):不错的,有关无组件上传图片这代码是从网上down下来的,但我自己也有相似的代码,(即我先前学ASP时所买书上的),也是由于换了数据库就不行,所以不了了之.
当然,感谢你的代码~

5.真诚希望各位能耐心地给我一个很好的解决方法.谢谢(可运行的实际代码)及讲下为什么一换成SQL数据库就出现如上错误!

加载更多回复(19)

28,409

社区成员

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

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