ASP 文件上传后将文件信息插入数据库的问题

wanyoulin 2009-10-06 01:59:06
能上传但不能插入数据库信息。ASP文件代码如下:

<%
Response.Buffer = True
Server.ScriptTimeOut=9999999
On Error Resume Next
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="zh-cn" />
<meta content="all" name="robots" />
<meta name="author" content="木目,Woodeye" />
<meta name="description" content="木目ASP文件上传工具" />
<meta name="keywords" content="木目,ASP,Upload,文件上传" />
<style type="text/css">
<!--
body,input {font-size:12px;}
-->
</style>
<title>木目ASP文件上传工具</title>
</head>
<body id="body">
<%
ExtName = "jpg,gif,png,txt,rar,zip,doc" '允许扩展名
SavePath = "upload" '保存路径
If Right(SavePath,1)<>"/" Then SavePath=SavePath&"/" '在目录后加(/)
CheckAndCreateFolder(SavePath)

UpLoadAll_a = Request.TotalBytes '取得客户端全部内容
If(UpLoadAll_a>0) Then
Set UploadStream_c = Server.CreateObject("ADODB.Stream")
UploadStream_c.Type = 1
UploadStream_c.Open
UploadStream_c.Write Request.BinaryRead(UpLoadAll_a)
UploadStream_c.Position = 0

FormDataAll_d = UploadStream_c.Read
CrLf_e = chrB(13)&chrB(10)
FormStart_f = InStrB(FormDataAll_d,CrLf_e)
FormEnd_g = InStrB(FormStart_f+1,FormDataAll_d,CrLf_e)

Set FormStream_h = Server.Createobject("ADODB.Stream")
FormStream_h.Type = 1
FormStream_h.Open
UploadStream_c.Position = FormStart_f + 1
UploadStream_c.CopyTo FormStream_h,FormEnd_g-FormStart_f-3
FormStream_h.Position = 0
FormStream_h.Type = 2
FormStream_h.CharSet = "GB2312"
FormStreamText_i = FormStream_h.Readtext
FormStream_h.Close

FileName_j = Mid(FormStreamText_i,InstrRev(FormStreamText_i,"\")+1,FormEnd_g)
If(CheckFileExt(FileName_j,ExtName)) Then
SaveFile = Server.MapPath(SavePath & FileName_j)

If Err Then
Response.Write "文件上传: <span style=""color:red;"">文件上传出错!</span> <a href=""" & Request.ServerVariables("URL") &""">重新上传文件</a><br />"
Err.Clear
Else
SaveFile = CheckFileExists(SaveFile)

k=Instrb(FormDataAll_d,CrLf_e&CrLf_e)+4
l=Instrb(k+1,FormDataAll_d,leftB(FormDataAll_d,FormStart_f-1))-k-2
FormStream_h.Type=1
FormStream_h.Open
UploadStream_c.Position=k-1
UploadStream_c.CopyTo FormStream_h,l
FormStream_h.SaveToFile SaveFile,2

SaveFileName = Mid(SaveFile,InstrRev(SaveFile,"\")+1)
'---------把图片插入数据库--------
DbPath=Server.MapPath("Data/Magic.mdb")
Set conn=Server.CreateObject("ADODB.Connection")
conn.open "driver={Micrlsoft Access Driver(*.mdb)};dbq=" & DbPath
alert("hhgg!")
document.upform.upfile.focus()

set rs=server.CreateObject("adodb.recordset")
rs.open "select * from pic",conn,1,3
rs.addnew
rs("picname")=savefilename
rs("username")=request.cookies("Cnhww")("username")
rs("Addtime")=now()
rs("addname")=savefilename
rs("location")=savefile
rs.update
rs.close
set rs=nothing
'--------------插入完成------------

Response.write "文件上传: <span style=""color:red;"">" & SaveFileName & " </span>文件上传成功! <a href=""" & Request.ServerVariables("URL") &""">继续上传文件</a><br />"
End If
Else
Response.write "文件上传: <span style=""color:red;"">文件格式不正确!</span> <a href=""" & Request.ServerVariables("URL") &""">重新上传文件</a><br />"
End If

Else
%>
<script language="Javascript">
<!--
function ValidInput()
{

if(document.upform.upfile.value=="")
{
alert("请选择上传文件!")
document.upform.upfile.focus()
return false
}
return true
}
// -->
</script>
<form action='<%= Request.ServerVariables("URL") %>' method='post' name="upform" onsubmit="return ValidInput()" enctype="multipart/form-data"">
文件上传:
<input type='file' name='upfile' size="40"> <input type='submit' value="上传">
</form>
<%
End if
Set FormStream_h = Nothing
UploadStream.Close
Set UploadStream = Nothing
%>
</body>
</html>
<%
'判断文件类型是否合格
Function CheckFileExt(FileName,ExtName) '文件名,允许上传文件类型
FileType = ExtName
FileType = Split(FileType,",")
For i = 0 To Ubound(FileType)
If LCase(Right(FileName,3)) = LCase(FileType(i)) then
CheckFileExt = True
Exit Function
Else
CheckFileExt = False
End if
Next
End Function

'检查上传文件夹是否存在,不存在则创建文件夹
Function CheckAndCreateFolder(FolderName)
fldr = Server.Mappath(FolderName)
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(fldr) Then
fso.CreateFolder(fldr)
End If
Set fso = Nothing
End Function

'检查文件是否存在,重命名存在文件
Function CheckFileExists(FileName)
Set fso=Server.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(SaveFile) Then
i=1
msg=True
Do While msg
CheckFileExists = Replace(SaveFile,Right(SaveFile,4),"_" & i & Right(SaveFile,4))
If not fso.FileExists(CheckFileExists) Then
msg=False
End If
i=i+1
Loop
Else
CheckFileExists = FileName
End If
Set fso=Nothing
End Function
%>

红色标注的部分好像有问题
我的根目录是web 上传文件是web/index.asp 数据库是web/Data/Magic.mdb 数据库中有个表pic 表中有字段picname、username、Addtime、addname、location

我是想将上传的那个文件的一些信息插入数据库,可好像什么地方有问题总是不成功!还请各位帮帮忙!!!谢谢大家了!!

...全文
1114 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanyoulin 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunne88 的回复:]
大侠,如果要在这段程序中限制上传文件的大小,那该如何写啊?
我是菜菜鸟,正在学习ASP中,请大侠指教.
最好给我一段完整的代码,感谢之至.
[/Quote]


我是网上搜的 我也不知道怎么限制!!
你搜 无组建上传 有很多是有限制大小的你去看看吧
sunne88 2009-10-15
  • 打赏
  • 举报
回复
大侠,如果要在这段程序中限制上传文件的大小,那该如何写啊?
我是菜菜鸟,正在学习ASP中,请大侠指教.
最好给我一段完整的代码,感谢之至.
wanyoulin 2009-10-06
  • 打赏
  • 举报
回复
呵呵!!你真是太厉害了!!!太感谢了!!!能成功插入了!!!
hookee 2009-10-06
  • 打赏
  • 举报
回复
alert("hhgg!")
document.upform.upfile.focus()
是客户端代码,不能写在服务器代码中
--------------------------------
<%
DbPath = Server.MapPath("Data/Magic.mdb")
Set conn = CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbPath & ";"
set rs = CreateObject("adodb.recordset")
rs.CursorLocation = 3
rs.open "select * from pic where 1=0",conn,1,3
rs.addnew
rs("picname")=savefilename
rs("username")=request.cookies("Cnhww")("username")
rs("Addtime")=now()
rs("addname")=savefilename
rs("location")=savefile
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
%>

28,391

社区成员

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

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