把文件存进access数据库然后取出来供人下载的代码

发表于:2007-07-13来源:作者:点击数: 标签:
senddate.asp(发送界面) form method="post" ENCTYPE="multipart/form-data" name="form3" action="senddateindb.asp" input type="hidden" name="userdept" value="%=firstdept%" input type="hidden" name="username" value="所有人" td align="center"b发
senddate.asp(发送界面)

<form method="post" ENCTYPE="multipart/form-data" name="form3" action="senddateindb.asp">
<input type="hidden" name="userdept" value="<%=firstdept%>">
<input type="hidden" name="username" value="所有人">
<td align="center"><b>发给:</b></td><td><input type="text" name="sendto" size=60 value="<%=sendto%>" onfocus="document.form3.title.focus();"><font color=red>*</font></td>
</tr>
<tr>
<td align="center"><b>标题:</b></td>
<td><input type=text name="title" size=60><font color=red>*</font></td>
</tr>
<tr>
<td align="center"><b>内容:</b></td>
<td><textarea name="content" rows="9" cols="60"></textarea></td>
</tr>
<tr>
<td align="center"><b>附件:</b></td>
<td><input type="file" name="file1" size=35>(不能超过100K)</td>
</tr>
<tr>
<td align=center colspan=2>
<input type="submit" name="submit" value="发送">
</td>
</form>

*************************************************************************
senddateindb.asp(把要发送的文件保存到数据库)

<!--#INCLUDE FILE="asp/fupload.inc"-->
<!--#include file="asp/opendb.asp"-->
<!--#include file="asp/sqlstr.asp"-->
<!--#include file="asp/checked.asp"-->
<!--#include file="asp/bgsub.asp"-->
<%
'On Error Resume Next
oabusyname=request.cookies("oabusyname")
oabusyusername=request.cookies("oabusyusername")
oabusyuserdept=request.cookies("oabusyuserdept")
oabusyuserlevel=request.cookies("oabusyuserlevel")
if oabusyusername="" then response.redirect "default.asp"
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" href="css/css.css">
<title>企业管理系统</title>
</head>
<body bgcolor="#eeeeee" topmargin="5" leftmargin="5">
<%
call bghead()
%>
<center>
<table>
<tr>
<td>
<b>公文发送</b>
</td>
<form action="senddate.asp" method="post" name="form1">
<td>
<input type="submit" value="返回">
</td>
</form>
</tr>
</table>
</center>
<%
call bgmid()
%>

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'---------------------------
'response.write "开始发送<br>"
'---------------------------
Dim Fields
UploadSizeLimit=100000
Set Fields = GetUpload()
dim Field
For Each Field In Fields.Items
if Field.name="title" then title=BinaryToString(Field.value)
if Field.name="content" then content=BinaryToString(Field.value)
if Field.name="sendto" then sendto=BinaryToString(Field.value)
if Field.name="file1" then
filename=field.FileName
fileContentType=field.ContentType
filevalue=field.value
end if
next
'--------------------------------------
'response.write "title=" & title & "<br>"
'response.write "content=" & content & "<br>"
'response.write "sendto=" & sendto & "<br>"
'response.write "filedname=" & filename & "<br>"
'response.write "fileContentType=" & fileContentType & "<br>"
'----------------------------------------
dim mysendto
mysendto=split(sendto,"|",-1,1)
for each sendtoinf in mysendto
userdeptpoint=InStr(sendtoinf,":")
if userdeptpoint>0 then
sendtoinflen=len(sendtoinf)
recipientusername=right(sendtoinf,sendtoinflen-userdeptpoint)
if recipientusername="所有人" then
recipientusername="所有人"
else
usernamepoint=Instr(recipientusername,"(")
usernamelen=len(recipientusername)
recipientusername=left(recipientusername,usernamelen-1)
recipientusername=right(recipientusername,usernamelen-1-usernamepoint)
end if
recipientuserdept=left(sendtoinf,userdeptpoint-1)
set conn=opendb("oabusy","conn","aclearcase/" target="_blank" >ccessdsn")
set rs=server.createobject("ADODB.recordset")
sql = "select * from senddate"
rs.Open sql,conn,1,3
rs.addnew
rs("title")=title
rs("content")=content
rs("sender")=oabusyusername
rs("recipientusername")=recipientusername
rs("recipientuserdept")=recipientuserdept
if filename<>"" then
rs("filename")=filename
rs("fileContentType")=fileContentType
rs("filevalue").appendchunk filevalue
end if
rs.update
rs.close
set rs=nothing
set conn=nothing

end if

next

%>
<br><br>
<center>发送完成</center>
<%
end if
%>
<%
call bgback()
%>
</body>
</html>

*****************************************************************
listsendfile.asp (把数据库里面的文件取出来并下载,如果是文本或图像会直接打开)
<!--#include file="asp/opendb.asp"-->
<%
set conn=opendb("oabusy","conn","accessdsn")
Set rs=Server.CreateObject("ADODB.recordset")
'request("id")是从上一个文件传过来的值,表示这个文件在数据库里的位置
sql="select filevalue,fileContentType from senddate where id=" & trim(request("id"))
rs.open sql,conn,1,1
Response.ContentType = rs("fileContentType")
Response.BinaryWrite rs("filevalue").getChunk(7500000)
rs.close
set rs=nothing
set conn=nothing
%>  

原文转自:http://www.ltesting.net