求助一个附件上传的问题?(上传附件和提交表单同时进行)

kosaka 2013-10-18 03:22:14
最近改一个原来同事做的上传文件的例子,发现在表单没有提交的时候就已经将附件上传到服务器上了,这样会造成只上传而不发送文件的情况。我想变成添加附件只是验证一下附件文件的可行性,在表单提交的时候再上传。请教各位达人有没有好的方法。
下面是两个文件

主界面
test.asp
<html>
<head><httpRuntime executionTimeout="90" maxRequestLength="100000" useFullyQualifiedRedirectUrl="false" />
<title>∷电子政务内网公文传输系统∷</title>
<LINK href="css/global.css" rel=stylesheet type=text/css>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--#include file="conn.asp"-->
<%
if Request("action") = "add" Then
if request("joinman")="" then
response.write"<SCRIPT language=JavaScript>alert('接收单位不能为空!!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if
if request("title")="" then
response.write"<SCRIPT language=JavaScript>alert('请输入文件标题!!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if
if request("fbdw")="" then
response.write"<SCRIPT language=JavaScript>alert('请输入发文单位!!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if
if request("filename")="" then
response.write"<SCRIPT language=JavaScript>alert('文件类型不能没有!!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if
if request("content")="" then
response.write"<SCRIPT language=JavaScript>alert('文件内容不能为空!!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if
if request("file1")="" then
response.write"<SCRIPT language=JavaScript>alert('上传文件不能为空!!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if

function makefilename(fname)
fname = now()
fname = replace(fname,"-","")
fname = replace(fname," ","")
fname = replace(fname,":","")
fname = replace(fname,"PM","")
fname = replace(fname,"AM","")
fname = replace(fname,"上午","")
fname = replace(fname,"下午","")
makefilename=fname
end function

vfname = makefilename(now())

set rs=server.createobject("ADODB.recordset")
sql="select * from path"
rs.open sql,conn,1,1

if not rs.eof and not rs.bof then
filepath=rs("fileword")
else
filepath="upfile/"
end if
rs.close
df=request("joinman")
joinman = trim(request("joinman"))
title=request("title")
fbdw=request("fbdw")
filename=request("filename")
fk=request("fk")
file1=request("file1")
wenhao=request("wenhao")
content=request("content")

set rs=server.createobject("ADODB.recordset")
sql = "select * from filedata"
rs.Open sql,conn,2,3
rs.addnew
if instr(1,"||supermanage|chksuper|",Session("power"))>1 then
if dfdw<>"" then
rs("fbdw")=df
rs("manageman")=dfdw
else
rs("fbdw")=fbdw
rs("manageman")=Session("username")
end if
else
rs("fbdw")=fbdw
rs("manageman")=session("username")
end if

rs("title")=trim(title)
rs("typename")=filename
if instr(joinman,rs("manageman")) then
joinman=joinman&"|"
else
joinman="|"&rs("manageman")&"|"&joinman&"|"
end if
rs("joinman")=joinman
rs("fk")=fk
rs("content")=content
rs("jointime")=now()
rs("filepath")=filepath
rs("wenhao")=wenhao
rs("filename")=file1
rs.update
rs.close
sql = "select top 1 * from filedata order by id desc"
rs.Open sql,conn,1,1
id1=rs("id")
title1=rs("title")
rs.close

if filename1<>"" then xup.SaveFile "file1",filepath&vfname&filename1

set xup=nothing
set rs2=server.createobject("ADODB.recordset")
sql2="select * from fileuser"
rs2.Open sql2,conn,1,3
mysendto=split(joinman,"|",-1,1)

for each sendtoinf in mysendto
if trim(sendtoinf)<>"" then
set rs1=server.createobject("ADODB.recordset")
sql="select * from [user] where username='"&trim(sendtoinf)&"'"
rs1.Open sql,conn,1,3
rs2.addnew'将信息录入到userinf数据表中
rs2("username")=sendtoinf
if not rs1.EOF then rs2("name")=rs1("用户名")
' if sendtoinf=oabusyusername or rs1("userlevel")="超级管理员" or rs1("userlevel")="最高管理员" then
if sendtoinf=Session("username") then'修改语句
rs2("qshou")=1
else
rs2("qshou")=0
end if

rs2("reid")=id1
rs2("title")=title
rs2.update
rs1.Close
set rs1=nothing
end if
next
rs2.close
set rs2=nothing
'写入反馈
if fk=1 then
set rs3=server.createobject("ADODB.recordset")
sql2="select * from filefk"
rs3.Open sql2,conn,1,3
mysendto=split(joinman,"|",-1,1)

for each sendtoinf in mysendto
if trim(sendtoinf)<>"" then
set rs1=server.createobject("ADODB.recordset")
sql="select * from [user] where username='"&trim(sendtoinf)&"'"
rs1.Open sql,conn,1,3
rs3.addnew
rs3("username")=trim(sendtoinf)
if not rs1.EOF then rs3("name")=rs1("用户名")
' if sendtoinf=oabusyusername or rs1("userlevel")="超级管理员" or rs1("userlevel")="最高管理员" then
if sendtoinf=session("username") then'修改语句
rs3("fk")=1
else
rs3("fk")=0
end if

rs3("reid")=id1
rs3("title")=title
rs3.update
rs1.Close
set rs1=nothing
end if
next
rs3.close
set rs3=nothing
end if
set conn=nothing

%>
<style>
<!--
input { border-left: 1px solid #FFFFFF; border-right: 1px solid #FFFFFF;
border-top: 1px solid #FFFFFF; border-bottom: 1px solid #C0C0C0 }
-->
</style><%Response.write "<script language='javascript'>" & chr(13)
Response.write "alert('发送文件完成!');" & Chr(13)
Response.write "window.document.location.href='document.asp';"&Chr(13)
Response.write "</script>" & Chr(13)
Response.End%>
<%
else
%>
<center>
<form method=post name="form1" action="fbfile.asp?action=add">




这里面就是表单的内容,其中上传附加用的是框架(下面红字的部分)
..................
<p style="margin-top: 0; margin-bottom: 0">
<input name="file1" style="border-left:1px solid #FFFFFF; border-right:1px solid #FFFFFF; border-top:1px solid #FFFFFF; border-bottom:1px solid #C0C0C0; background:#FFFFFF; " type="text" id="file1" size="62" />
<font color=red>*</font><p style="margin-top: 0; margin-bottom: 0"> <p style="margin-top: 0; margin-bottom: 0">
<iframe frameborder=0 width=365 height=100% scrolling=no src="upfile.asp?action=pic" name="I5"></iframe>
</p>
</td>
</tr>
</table>
</div>
</table>
</table>
</div>
</form>

upfile.asp代码如下:
<%
select case request("action")
case "pic":
call pic()
end select
sub pic()
if Request.QueryString("submit")="pic" then
uploadpath="upfile/fileword/"
uploadsize="100000"
uploadtype="jpg/gif/pdf/doc/xls/ppt/docx/txt"
Set yecaorequest=new UpLoadClass
yecaorequest.SavePath=uploadpath
yecaorequest.MaxSize=uploadsize*1024
yecaorequest.FileType=uploadtype
AutoSave=true
yecaorequest.open
if yecaorequest.form("file_Err")<>0 then
select case yecaorequest.form("file_Err")
case 1:str="<font color=red>上传不成功!文件超过"&uploadsize&"k [<a href='javascript:history.go(-1)'>重新上传</a>]</font><br><br>"
case 2:str="<font color=red>上传不成功!文件格式不对 [<a href='javascript:history.go(-1)']>重新上传</a>]</font><br><br>"
case 3:str="<font color=red>上传不成功!文件太大且格式不对 [<a href='javascript:history.go(-1)'>重新上传</a>]</font><br><br>"
end select
response.write str
else
response.write "<script language=""javascript"">parent.form1.file1.value='"&yecaorequest.SavePath&yecaorequest.Form("file")&"';"
response.write "</script>"
response.write "<script language=""javascript"">parent.form1.file1.value='"&yecaorequest.SavePath&yecaorequest.Form("file")&"';"
response.write "</script>"
response.write "</script>"
size=round((yecaorequest.Form("file_size")/1024),2)&"k"
response.write "<font color=red>文件上传成功</font><br><br>"
end if
Set yecaorequest=nothing
end if
response.write "<form name=form action=?action=pic&submit=pic method=post enctype=multipart/form-data>"
response.write "<input type=file name=file style=""border:1 solid #000000;background:#ffffff""> "
response.write "<input type=submit name=submit value=上传 class=""put"" onmouseover=""this.className='overput'"" onmouseout=""this.className='put'"">"
response.write "</form>"
end sub

%>
<%
Class UpLoadClass
...........
End Class
%>
这其中是实现上传类的内容,不必赘述
请教高人指点,谢谢。
...全文
283 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

28,391

社区成员

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

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