为什么保存不到数据库中???

fujunle 2006-12-14 06:18:43
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%dbdns="../"%>
<!--#include file="../inc/Config.asp"-->
<!--#include file="../inc/err.asp"-->
<!--#include file="cook.asp"-->
<%
if userflag23=0 then
response.redirect"ok.asp?action=flag"
end if
''主程序开始部分

dim formsize,formdata,Msg
formsize = Request.TotalBytes
formdata = Request.BinaryRead(formsize)
UploadSize=true

If Formsize = 0 or Formsize > OKsize Then
UploadSize=false
Response.Write "<script>alert('你要上传的单个文件大小超出系统限制,请返回修改重试');history.go(-1);</Script>"
Response.End
End If


dim sinfo_Stream
set Sinfo_Stream = Server.CreateObject("adodb.stream")
Sinfo_Stream.Type = 1 ''2进制流
Sinfo_Stream.Mode = 3 ''读写模式
Sinfo_Stream.Open
Sinfo_Stream.Write formdata ''保存二进制内容到流对象
''分离数据变量
dim VbEnter
dim spStr,lenOfspStr,bpos
dim loopcnt,exitflag,ppoint,npoint
''保存数据变量
dim FldData,fldHeadStr,infldpos
dim databpos,datalen
dim FldInfo(15,1)
''fldInfo(0)表单头内容
''fldInfo(1)表单数据

VbEnter = chrb(13)&chrb(10)''读取第一个VbEnter位置
bpos = Instrb(formdata,VbEnter)
SpStr = midb(formdata,1,bpos+1) ''包含了一个0d0a
LenOfspStr = lenb(Spstr)
ppoint = LenOfspStr+1 ''位置指针,指向每一个表单域内容的开始位置
formdata = midb(formdata,ppoint)
loopcnt = 0 ''表单元素
do
bpos = instrb(formdata,spStr) ''分割位置
npoint = (ppoint+bpos+lenofspstr-1) ''指向下一表单开始位置
if bpos < 1 then
fldData = midb(formdata,1,instrb(formdata,leftb(spStr,lenOfspstr-2))-1)
bpos = lenb(fldData)+1
exitflag = true
else
FldData = leftb(formdata,bpos-1)
formdata = midb(formdata,bpos+LenOfspstr)
end if
infldpos = instrb(fldData,vbEnter&vbEnter)
fldHeadStr = bytes2bstr(midb(fldData,1,infldpos-1))
fldInfo(loopcnt,0) = fldHeadStr ''表单头
''Response.Write fldHeadStr&"<br>"
databpos = (ppoint+infldpos-1+4)
Sinfo_Stream.Position = databpos-1
datalen = (bpos-infldpos-6)
if datalen = 0 then
fldInfo(loopcnt,1) = ""
else
fldInfo(loopcnt,1) = Sinfo_Stream.Read(datalen)
end if
ppoint = npoint
loopcnt = loopcnt + 1
loop until exitflag = true
Sinfo_Stream.close
set Sinfo_Stream = Nothing


''以上程序数据处理过程
''写入数据库并处理文件上传开始
Sub SaveData()

SMT_sort=myrequest("SMT_sort")
SMT_filename=myrequest("SMT_filename")
yysize=myrequest("yysize")

if SMT_sort="" or SMT_filename="" or yysize="" then
response.write "<script>alert('对不起,请填写完整内容!');history.go(-1);</Script>"
Response.End
end if

filedata = myrequest("filedata")
filesize = lenb(filedata)
if filesize <> 0 then
filename = GetFileName("filedata")
FileTypeName = GetFileTypeName(FileName)
If IsvalidFile(FileTypeName)=false Then
Response.Write "<script>alert('文件类型非法,不允许上传"&FileTypeName&"文件!');history.go(-1);</Script>"
Response.End
Exit Sub
End If
filename=replace(replace(replace(now(),":","")," ","_"),"-","")&"."&FileTypeName
basepath = "../UserDocument/"&session("useradmin")&"/Picture/"
'===================================================
yysize=yysize+filesize
if userflag7<round(yysize/1024,2) then
Response.Write "<script>alert('对不起,你的剩余空间已不足上传此文件,请修改重试!');history.go(-1);</Script>"
Response.End
end if
'===================================================
set fso =server.CreateObject("Scripting.FileSystemObject")
If Fso.folderExists(server.mappath("../UserDocument"))=false Then
Fso.Createfolder(server.mappath("../UserDocument"))
end if
If Fso.folderExists(server.mappath("../UserDocument/"&session("useradmin")&""))=false Then
Fso.Createfolder(server.mappath("../UserDocument/"&session("useradmin")&""))
end if
If Fso.folderExists(server.mappath("../UserDocument/"&session("useradmin")&"/Picture"))=false Then
Fso.Createfolder(server.mappath("../UserDocument/"&session("useradmin")&"/Picture"))
end if
set fso =nothing

dim Fstream
set FStream = Server.CreateObject("adodb.stream")
fstream.mode = 3
fstream.type = 1
fstream.open
fstream.position = 0
fstream.Write filedata
fstream.savetofile Server.Mappath(basepath&filename),2
fstream.close
set fstream = nothing
'============================
else
Response.Write "<script>alert('请选择您要上传的文件!');history.go(-1);</Script>"
Response.End
end if
'===================================================
Set rs=Server.CreateObject("Adodb.RecordSet")
sql="select * from [table]
rs.open sql,conn,1,3
rs.addnew
rs("SMT_yp_id")=session("id")
rs("SMT_filename")=SMT_filename
rs("SMT_filesize")=filesize
rs("SMT_fileadd")="UserDocument/"&session("useradmin")&"/Picture/"&filename
rs("SMT_sort")=SMT_sort
rs.update
rs.close
set rs=nothing
conn.close
set conn = nothing
'===================================================

End Sub
SaveData
response.redirect"ok.asp?url=my_Picture.asp"
%>
...全文
213 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
fujunle 2006-12-16
  • 打赏
  • 举报
回复
谢谢各位都大,
问答找到,解决了!
filename文件名出错了,原因是我本机的时间设置的是( 上午 10:09:30 )的格式,
所以存不到库里.
fujunle 2006-12-15
  • 打赏
  • 举报
回复

都没有on error on resume next这句
tangqiaojie 2006-12-15
  • 打赏
  • 举报
回复
就是你看不到出错才叫你去掉on error on resume next啊(就是把on error on resume next都变成'on error on resume next,注释掉),你看看前面调用的文件里面有没有,有就注释了他

这样你才能看到报错啊,然后根据错误来处理,这样比盲目试好多了
fujunle 2006-12-15
  • 打赏
  • 举报
回复
on error on resume next
这个不要关注,关注下面这个为什么不能保存到数据库中

Set rs=Server.CreateObject("Adodb.RecordSet")
sql="select * from [table]"
rs.open sql,conn,1,3
rs.addnew
rs("SMT_yp_id")=session("id")
rs("SMT_filename")=SMT_filename
rs("SMT_filesize")=filesize
rs("SMT_fileadd")="UserDocument/"&session("useradmin")&"/Picture/"&filename
rs("SMT_sort")=SMT_sort

Response.Write rs("SMT_filename")
Response.Write SMT_filename

rs.update
rs.close
set rs=nothing
conn.close
set conn = nothing
fujunle 2006-12-15
  • 打赏
  • 举报
回复
on error on resume next

去了不出错的
fujunle 2006-12-15
  • 打赏
  • 举报
回复
回:cpp2017(幕白兄)
去掉<!--#include file="../inc/err.asp"-->还是不行

回:Mapleleaf123()
response.write 入库的几个值看看有没有

加上之后没有输入值,~~~~~~~~~~~~~
Mapleleaf123 2006-12-15
  • 打赏
  • 举报
回复
Set rs=Server.CreateObject("Adodb.RecordSet")
sql="select * from [table]"
rs.open sql,conn,1,3
rs.addnew
rs("SMT_yp_id")=session("id")
rs("SMT_filename")=SMT_filename
rs("SMT_filesize")=filesize
rs("SMT_fileadd")="UserDocument/"&session("useradmin")&"/Picture/"&filename
rs("SMT_sort")=SMT_sort

Response.Write rs("SMT_filename")
Response.Write SMT_filename

rs.update
rs.close
set rs=nothing
conn.close
set conn = nothing

response.write 入库的几个值看看有没有
还有就是你的on error on resume next
语句去了。。看出错不?
cpp2017 2006-12-15
  • 打赏
  • 举报
回复
你检查一下这个文件
<!--#include file="../inc/err.asp"-->

有没有on error resume next的语句,如果有先注释掉.可能是出了什么错误.
fujunle 2006-12-15
  • 打赏
  • 举报
回复
有值
Response.Write "UserDocument/"&session("useradmin")&"/Picture/"&filename
因为上面这句,在 Set rs=Server.CreateObject("Adodb.RecordSet") 前面都可以得到值
而加到保存那一段,就得不到值了
cpp2017 2006-12-15
  • 打赏
  • 举报
回复
Response.Write rs("SMT_filename")
Response.Write SMT_filename
加一句
Respnse.Write("DFSFSFSDF") 看有没有执行到这里.

另外:myrequest("SMT_filename") 会不会有值?
fujunle 2006-12-15
  • 打赏
  • 举报
回复
我测试的时候,Set rs=Server.CreateObject("Adodb.RecordSet")
这句前面加了两行:
Response.Write "UserDocument/"&session("useradmin")&"/Picture/"&filename
Response.Write SMT_filename

可以在面上得到正确的数据,而下面两行加到 rs.addnew 这下面就不显示:
Response.Write rs("SMT_filename")
Response.Write SMT_filename
fujunle 2006-12-15
  • 打赏
  • 举报
回复
回:cpp2017(幕白兄)
刚看错了,
sql="select * from [table]
后面有"号,发的时候给少输了
fujunle 2006-12-15
  • 打赏
  • 举报
回复
没有"号
图上传后,图片可以保存到文件夹中,
就这数据不能保存到数据库中,
cow8063 2006-12-15
  • 打赏
  • 举报
回复
是不是有错?
是不是加了on error resume next?
cpp2017 2006-12-15
  • 打赏
  • 举报
回复
sql="select * from [table]
后面没有"号?
fujunle 2006-12-15
  • 打赏
  • 举报
回复
沉了'._
fujunle 2006-12-15
  • 打赏
  • 举报
回复
没有报错,文件可以传上去,就是信息保存不到数据库里,就是这下面段,
Set rs=Server.CreateObject("Adodb.RecordSet")
sql="select * from [table]
rs.open sql,conn,1,3
rs.addnew
rs("SMT_yp_id")=session("id")
rs("SMT_filename")=SMT_filename
rs("SMT_filesize")=filesize
rs("SMT_fileadd")="UserDocument/"&session("useradmin")&"/Picture/"&filename
rs("SMT_sort")=SMT_sort

Response.Write rs("SMT_filename")
Response.Write SMT_filename

rs.update
rs.close
set rs=nothing
conn.close
set conn = nothing
'==============================================
中门加了两行输出都得不到信息……
stou 2006-12-14
  • 打赏
  • 举报
回复
UP
windwl 2006-12-14
  • 打赏
  • 举报
回复
报什么错误么?
fujunle 2006-12-14
  • 打赏
  • 举报
回复
主要保存在最下面……

28,390

社区成员

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

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