使用asp实现支持附件的邮件系统(三)

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

最后,我们来讲讲如何把内容从数据库中读出来,内容有这么几类,一类是浏览器上可以显示的,例如*.htm,一类是需要下载的,例如*.exe,还有一种是浏览器可以显示但是不能够让他显示的,例如*.asp,请看代码:

<%

Response.Buffer= true

Response.Clear

function getname(oriname)

thename=oriname

do while instr(thename,"/")>0

thename=mid(thename,instr(thename,"/")+1)

loop

do while instr(thename,"\")>0

thename=mid(thename,instr(thename,"\")+1)

loop

getname=thename

end function

function canexec(thechar)

if instr(thechar,".asp")>0 then

canexec=false

exit function

end if

if instr(thechar,".asa")>0 then

canexec=false

exit function

end if

if instr(thechar,".aspx")>0 then

canexec=false

exit function

end if

if instr(thechar,".asax")>0 then

canexec=false

exit function

end if

canexec=true

end function

mailID=request("mailID")

se=request("se")

if se<>1 and se<>2 and se<>3 then

response.end

end if

Set conn=server.createobject("adodb.connection")

set rs=server.createobject("adodb.recordset")

conn.open "DSN=;UID=;PWD="

sql="select * from t_mail where ((geterempl like '%"&session("myid")&"%' or deleempl like '%"&session("myid")&"%' or receempl like '%"&session("myid")&"%' ) and (not deleverempl like '%"&session("myid")&"%')) and mailid='"&mailid&"' "

rs.open sql,conn,3,3

if rs.eof or rs.bof then

response.end

end if

if rs("filecontenttype_"&trim(se))<>"text/plain" or (not canexec(getname(trim(rs("filename_"&trim(se)))))) then

Response.ContentType = rs("FileContentType_"&trim(se))

end if

'Response.AddHeader "content-type","application/x-msdownload"

if instr(response.contenttype,"application")>0 then

response.AddHeader "Content-Disposition","attachment;filename="&getname(trim(rs("filename_"&trim(se))))

end if

Response.BinaryWrite rs("FileContent_"&trim(se))

rs.close

set rs=Nothing

conn.close

set conn=nothing

%>

文章到这里就结束了,至于邮件数据库的数据结构大家根据代码自己琢磨吧!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航