| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 822 人关注过本帖
标题:[求助]改变图片上传处理文件后出现错误~~
只看楼主 加入收藏
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
结帖率:0
收藏
 问题点数:0 回复次数:8 
[求助]改变图片上传处理文件后出现错误~~

改变图片上传处理文件后出现错误~~


数据库中 pic_head 标题字段, pic_body具体内容字段, img图片字段(OLE)

我的图片上传代码:
upload.asp

<form action="upload_save.asp" method="post" enctype="multipart/form-data">
<input type="file" name="imgurl">
  <input type="submit" name=ok value="ok">
</form>

上面的代码,我加上了可以可以上传标题文字的和内容的功能,如下

<form action="upload_save.asp" method="post" enctype="multipart/form-data">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>标题</td>
<td><input name="pic_head" type="text" id="pic_head" /></td>
</tr>
<tr>
<td>内容</td>
<td><textarea name="pic_body" id="pic_body"></textarea></td>
</tr>
</table>
<input type="file" name="imgurl">
  <input type="submit" name=ok value="ok">
</form>

图片上传处理文件upload_save.asp

<!--#include file="conn.asp"-->
<%
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 "admin_index.asp"
%>

改成了

<!--#include file="conn.asp"-->
<%
pic_head=request.form("pic_head")
pic_body=request.form("pic_body")
exec="insert into news(pic_head,pic_body) values('"+pic_head+"','"+pic_body+"')"
conn.execute exec
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 "admin_index.asp"
%>

加粗部分为改动部分,改变后显示错误~ 请教大家是怎么回事啊?

搜索更多相关主题的帖子: 图片上传 数据库 form 文件 
2007-11-21 17:51
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
这个没有人能帮忙解决下吗???:L
2007-11-23 09:05
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
改动之前有错误吗? 你的 pic_head,pic_body 两个字段都是文本型的吗?

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2007-11-23 09:45
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
改动之前上传图片没有问题

pic_head=request.form("pic_head")
pic_body=request.form("pic_body")
exec="insert into news(pic_head,pic_body) values('"+pic_head+"','"+pic_body+"')"
conn.execute exec

是我后来加进去的~~~
2007-11-23 10:11
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
有朋友帮助解决下吗???
2007-11-23 16:55
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
enctype="multipart/form-data"这各方法是用流来传输数据的,
你这样应该是得不到pic_head和pic_body的值的
看看下面这个网址,利用无组件上传文件吧。
[url]http://topic.[/url]

楼下有高见请继续提出。
2007-11-23 19:38
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
还有朋友有什么高见吗?

帮忙改改我的代码啊~~~~~~~~~~~
2007-11-26 08:46
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
看到一篇这样的文章
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
BinaryRead   方法用于读取作为   POST   请求的一部分从客户端发出的未加工数据。此方法用于在底层访问数据,与此相反,Request.Form   集合用于查看在公告请求中发送的表格数据。一旦调用了   BinaryRead,则引用   Request.Form   集合中的任何变量都将导致错误发生。反之,一旦引用了   Request.Form   集合中的一个变量,则调用   BinaryWrite   也将导致错误发生。请记住,如果在访问   Request   集合中的变量时未指定该变量属于哪一个子集,将搜索   Request.Form   集合并强制使用上述规则。   
   
  那么,如何在表单的   enctype   属性为   multipart/form-data   的情况下取得表单元素值呢?思路很简单:BinaryRead方法对当前输入流进行指定字节数的二进制读取   ->   借助   RecordSet      AppendChunk   方法将二进制流转化成文本   ->   用正则分析出文本中包含的元素名及元素值   
   
  Dim   binData,   intSize,   objFormValue   
  intSize   =   Request.TotalBytes   
  binData   =   Request.BinaryRead(intSize)   
  Set   objFormValue   =   FormValue(binData,   intSize)   
  Const   adLongVarChar   =   201   
  Dim   RS,   strData,   strTmp,   objRegExp,   objDictReg,   objMatches,   Match   
  Set   RS   =   CreateObject("ADODB.Recordset")   
  RS.Fields.Append   "mBinary",   adLongVarChar,   intSize   
  RS.Open   
  RS.AddNew   
    RS("mBinary").AppendChunk(binData)   
  RS.Update   
  strData   =   RS("mBinary").Value   
  RS.Close   
  Set   RS   =   Nothing   
   
  现在   strData   已经是包含表单值的字符串了

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

请教大家对于我的代码具体改如何修改啊??
2007-11-26 09:31
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
斑竹在奥妙? 帮忙看看啊~
2007-11-27 15:14
快速回复:[求助]改变图片上传处理文件后出现错误~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017460 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved