|
技术资料 > ASP技术 > ASP应用 : 用文本+ASP打造新闻发布系统(二)新闻添加 |
用文本+ASP打造新闻发布系统(二)新闻添加 March 25,2004 |
<!--#include file="news_session.asp"-->
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
.buttonface {
BACKGROUND-COLOR: #0079F2; BORDER-BOTTOM: #333333 1px outset; BORDER-LEFT: #333333 1px outset; BORDER-RIGHT: #ffffff 1px outset; BORDER-TOP: #ffffff 1px outset; COLOR: #ffffff; FONT-SIZE: 9pta { color: #000000; text-decoration: none}
</style>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function client_onblur(ii) {
server=eval("form1.server"+ii)
if(server.value==""){
client=eval("form1.client"+ii)
clientvalue=client.value+""
varlen=clientvalue.length
a=clientvalue.lastIndexOf('\')
clientvalue=clientvalue.substring(a+1)
//alert(clientvalue);
server.value=clientvalue
}
}
function form1_onsubmit() {
for(i=1;i<1;i++){
client=eval("form1.client"+i)
server=eval("form1.server"+i)
if(client.value!="" && server.value==""){alert("上传后的文件名不能空!");server.focus();return false}
}
}
//-->
</SCRIPT>
<title>新闻发布系统</title>
</head>
<body bgcolor=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=0>
<form method="POST" action="news_input.asp" name="form1" enctype="multipart/form-data" LANGUAGE=javascript onsubmit="return form1_onsubmit()">
<div align="left">
<table border="1" width="754" height="404">
<tr align="center">
<td width="754" height="28" colspan="3" style="font-size:11pt"><strong>新闻发布系统后台管理--新闻添加</strong></td>
</tr>
<tr>
<td width="121" height="16" align="center" style="font-size:9pt">新闻标题</td>
<td width="617" height="16" colspan="2">
<input type="text" name="news_title" size="87"></td>
</tr>
<tr>
<td width="121" height="165" align="center" style="font-size:9pt">新闻内容</td>
<td width="617" height="165" colspan="2"><textarea rows="11" name="news_content" cols="85"></textarea></td>
</tr>
<tr>
<td width="121" height="21" align="center" style="font-size:9pt">新闻来源</td>
<td width="617" height="21" colspan="2">
<input type="text" name="news_src" size="87"></td>
</tr>
<tr>
<td width="121" height="20" align="center" style="font-size:9pt" >图片上传</td>
<td width="617" height="20" colspan="2">
<input type="file" name="client1" size="20" readonly LANGUAGE=javascript onblur="return client_onblur(1)" >
<span style="font-size:9pt"></span> <INPUT type="hidden" name="server1"> <input type="hidden" value="mysession" name="mysession"> </td>
</tr>
</table>
</div>
<p>
<input type="submit" value="递交" name="B1" class="buttonface"> <input type="reset" value="全部重写" name="B2" class="buttonface">
<input type="button" value="帐号修改" onclick="location.href='admin/news_chadmin.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface">
<input type="button" value="新闻修改" onclick="location.href='news_admin1.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"></p>
</form>
</body>
</html>
'###################
news_input.asp
<!--#include file="upload.inc"-->
<%
'Fields("xxx").Name 取得Form中xxx(Form Object)的名字
'Fields("xxx").FilePath 如果是file Object 取得文件的完整路径
'Fields("xxx").FileName 如果是file Object 取得文件名
'Fields("xxx").ContentType 如果是file Object 取得文件的类型
'Fields("xxx").Length 取得Form中xxx(Form Object)的数据长度
'Fields("xxx").Value 取得Form中xxx(Form Object)的数据内容
Dim FormData,FormSize,gnote,bnote,notes,binlen,binstr
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
Set Fields = GetUpload(FormData)
'############判断输入错误
dim news_title,news_content,news_src,mysession
mysession=Fields("mysession").value
if len(mysession)=0 then
Response.Write "非法登陆或超时请重新登陆"
Response.End
end if
news_title=Fields("news_title").value
news_title=replace(news_title,"|","|")
news_content=Fields("news_content").value
news_src=Fields("news_src").value
news_src=replace(news_src,"|","|")
if len(news_title)=0 then%>
<script>
alert("出错!新闻标题不能为空");
history.go(-1);
//window.location="news_add.asp";
</script>
<%Response.end
end if
if len(news_content)=0 then%>
<script>
alert("出错!新闻内容不能为空");
history.go(-1);
</script>
<%end if
if len(news_src)=0 then%>
<script>
alert("出错!新闻来源不能为空");
history.go(-1);
</script>
<%Response.end
end if
dim varchar
varchar=right(Fields("server1").value,3)
if len(varchar)<>0 then
if varchar<>"gif" and varchar<>"jpg" then
%>
<script>
alert("出错!不能上传该图片类型");
history.go(-1);
</script>
<% Response.end
else
end if
end if
'###########将图片写入文件夹
set file_O=Server.CreateObject("Scripting.FileSystemObject")
'##########当前时间做图片名
dim newname,mytime,newfile,filename,id,image
endname=right(fields("server1").value,4)
mytime=now()
id=Year(mytime)&Month(mytime)&Day(mytime)&Hour(mytime)&Minute(MyTime)&Second(MyTime)
imageid=id&endname
'#############写入图片
newfile="client1"
filename=Fields("server1").value
If Fields(newfile).FileName<>"" Then
file_name=Server.MapPath("./images/"&imageid&"")
set outstream=file_O.CreateTextFile(file_name,true,false)
binstr=Fields(newfile).Value
binlen=1
varlen=lenb(binstr)
for i=1 to varlen
clow = MidB(binstr,i,1)
If AscB(clow) = 255 then
outstream.write chr(255)
binlen=binlen+1
if (i mod 2)=0 then
notes=gnote
exit for
end if
elseif AscB(clow) > 128 then
clow1=MidB(binstr,i+1,1)
if AscB(clow1) <64 or AscB(clow1) =127 or AscB(clow1) = 255 then
binlen=binlen+1
'if (binlen mod 2)=0 then
binlen=binlen+1
outstream.write Chr(AscW(ChrB(128)&clow))
'end if
notes=bnote
exit for
else
outstream.write Chr(AscW(clow1&clow))
binlen=binlen+2
i=i+1
if (i mod 2)=0 then
notes=gnote
exit for
end if
end if
else
outstream.write chr(AscB(clow))
binlen=binlen+1
if (i mod 2)=0 then
notes=gnote
exit for
end if
end if
next
outstream.close
set outstream=file_O.OpenTextFile(file_name,8,false,-1)
outstream.write midb(Fields(newfile).Value,binlen)
outstream.close
if notes=bnote then notes=notes&(binlen-1)&"字节处。"
End If
'###################################################################################### 把新闻数据结构写入newslist文件
dim mappath,mytext,myfso,contenttext,news_addtime,news_point
news_point=1
news_addtime=mytime
set myfso=createobject("scripting.filesystemobject")
mappath=server.mappath("./")
set mytext=myfso.opentextfile(mappath&"new_list.asp",8,-1)
dim mytext2
if len(varchar)<>0 then
mytext2=trim(id&","&news_title&","&id&".txt"&","&news_src&","&news_point&","&news_addtime&","&imageid&"|")
else
mytext2=trim(id&","&news_title&","&id&".txt"&","&news_src&","&news_point&","&news_addtime&"|")
end if
mytext.writeline(mytext2)
mytext.close
'##############把新闻内容写入相应的文件中
set contenttext=myfso.OpenTextFile(mappath&"news_content"&id&".txt",8,-1)
function htmlencode2(str) '#############字符处理函数
dim result
dim l
l=len(str)
result=""
dim i
for i = 1 to l
select case mid(str,i,1)
case chr(34)
result=result+"''"
case "&"
result=result+"&"
case chr(13)
result=result+"<br>"
case " "
result=result+" "
case chr(9)
result=result+" "
case chr(32)
if i+1<=l and i-1>0 then
if mid(str,i+1,1)=chr(32) or mid(str,i+1,1)=chr(9) or mid(str,i-1,1)=chr(32) or mid(str,i-1,1)=chr(9) then
result=result+" "
else
result=result+" "
end if
else
result=result+" "
end if
case else
result=result+mid(str,i,1)
end select
next
htmlencode2=result
end function
'############################################################################
contenttext.write htmlencode2(news_content)
contenttext.close
set myfso=nothing
%>
<script>
alert("发布成功");
window.location="news_add.asp";
</script> |
|