为什么图片和文本不能实现同步上传?高手请教!!

lindsay 2002-07-25 10:02:13
我看到一篇关于图片和文本同步上传的文章,可是我试了以后,发现我要上传的文本和图片根本不能同步上传,总是图片先保存到了的数据库,文本的数字内容就是存不进去,由于那个字段的类型是int的,而且不能为空,所以程序就进行不下去了,真得很发迷,不知道哪位高手能解释???
代码如下:
<div align="center">
<table width="760" border="1" cellspacing="1" cellpadding="1" height="266" bgcolor="#FFFFFF" bordercolor="#000066">
<tr>
<td height="28"><b><font face="宋体" size="2" color="#FF0000">上传图片</font></b></td>
</tr>
<form id=form1 name=form method= "post" action="uploadnewspicid.asp">
<tr>
<td height="34"><b><font face="宋体" size="2" color="#FF0000">此新闻ID号是
<input type="text" name="newsid" size="5" value="<%=request.querystring("news_id")%>">
</font></b></td>
</tr>
</form>
<form id=form2 name=form enctype="multipart/form-data" action="uploadimg3.asp" method= "post" onsubmit="return chkext();">
<tr>
<td height="275">
<div align="center">
<p><img src="image/success.gif" height=150 border=1 name=picview></p>
<p>
<input type=file name=picpath style="font-size:9pt" size="30" onchange="See(this.form.picview,this.form.picpath)"></p>
<p>
<input type="submit" name="Submit2" value="提交">
</p>
</div>
</td>
</tr>
</form>

其中uploadnewspidid.asp是上传我的新闻id的,代码如下:
<% @ language=vbscript %>
<%
if session("account")<>"" and session("password")<>"" then
newspic_id=request.form("newsid")
'创建和打开Connection对象,创建Recordset对象
set cn=Server.CreateObject("adodb.connection")
cn.Open"dsn=news;uid=sa;pwd"
set rs=server.CreateObject("adodb.recordset")
sql=sql="select top 1 * from news_pic order by pic_id desc"
rs.open sql,cn,1,3
rs("newspic_id")=newspic_id
rs.update
set rs=nothing
cn.close
'如果用户没有登录,给出错误信息
else
response.write"你没有登录!无权进入管理区!"
end if
%>

uploadimg3.asp是上传图片的,代码如下:
rs. addnew '因为表单二在表单一提交的过程中下提交了。
'rs("newspic_id")=newspic_id
rs("pic_img").appendchunk image '所以这里是添加。
'response.write rs("pic_img")
'response.end
rs.Update
'释放对象并关闭连接
set rs=nothing
cn.close
response.contenttype="image/gif/jpg"
response.binarywrite imageup(formsize,formdata) '这里是显示图像。表示成功!
'如果用户没有登录,给出错误信息

然后错误提示如下:
技术信息(用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert the value NULL into column 'newspic_id', table 'news.dbo.news_pic'; column does not allow nulls. INSERT fails.
/uploadimg3.asp, 第 32 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)

网页:
POST 295431 ??? /uploadimg3.asp

POST Data:
错误 '80020009'
发生意外。

/iisHelp/common/500-100.asp,行 219

请帮忙看看!!!
...全文
26 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huguangwu 2002-07-29
可以采用组件,我常用的是lyfupload.dll这个组件,很好用,也很简单。无需大量的编程。

Good Luck
回复
lindsay 2002-07-29
我也感觉好像两个同是上传的时候总会有一个先后顺序,可是如果先传上去文本的话,图片就很难添加了,这样就保证不了同时性了,而且图片也不能正常显示,不知道是怎么搞的?有没有解决这两个问题的办法呢?
回复
zwangli 2002-07-25
呵呵,我也正发愁怎么图文上传呢,一上来就看见这篇文章:)

不过好像没看明白:两个表单提交的目标(target)都是本页面吗?如果是,会不会后提交的打断前面的?

待我试一下
回复
ChinaOk 2002-07-25
还有一个方法就是在递交前把form里的文本域的内容都用js转化成get方式来递交
就是设置form的action

回复
JavaCoffee 2002-07-25
将你的页面中的“uploadnewspidid.asp”改成下面的试试:
<% @ language=vbscript %>
<%
if session("account")<>"" and session("password")<>"" then
newspic_id=request.form("newsid")
if newspic_id<>"" then
'创建和打开Connection对象,创建Recordset对象
set cn=Server.CreateObject("adodb.connection")
cn.Open"dsn=news;uid=sa;pwd"
set rs=server.CreateObject("adodb.recordset")
sql=sql="select * from news_pic "
rs.open sql,cn,3,3
rs.addnew
rs("newspic_id")=newspic_id
rs.update
set rs=nothing
cn.close
'如果用户没有登录,给出错误信息
else
response.write"你没有登录!无权进入管理区!"
end if
end if
%>
回复
ChinaOk 2002-07-25
还有一个方法就是在递交前把form里的文本域的内容都用js转化成get方式来递交
就是设置form的action

回复
ChinaOk 2002-07-25
还有一个方法就是在递交前把form里的文本域的内容都用js转化成get方式来递交
就是设置form的action

回复
ChinaOk 2002-07-25
http://www.Chinaok.net/Down/lup.zip
回复
freezwy 2002-07-25
无组件上传图片到数据库中,最完整解决方案
http://www.aspsky.net/article/list.asp?id=2768
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告