用文本+ASP打造新闻发布系统

//图片上传

〈SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT〉

Function GetUpload(FormData)

Dim DataStart,DivStr,DivLen,DataSize,FormFieldData

'分隔标志串(+CRLF)

DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) + 1)

'分隔标志串长度

DivLen = LenB(DivStr)

PosOpenBoundary = InStrB(FormData,DivStr)

PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr)

Set Fields = CreateObject("Scripting.Dictionary")

While PosOpenBoundary 〉 0 And PosCloseBoundary 〉 0

'name起始位置(name="xxxxx"),加6是因为[name="]长度为6

FieldNameStart = InStrB(PosOpenBoundary,FormData,str2bin("name=")) + 6

FieldNameSize = InStrB(FieldNameStart,FormData,ChrB(34)) - FieldNameStart '(")的ASC值=34

FormFieldName = bin2str(MidB(FormData,FieldNameStart,FieldNameSize))

'filename起始位置(filename="xxxxx")

FieldFileNameStart = InStrB(PosOpenBoundary,FormData,str2bin("filename=")) + 10

If FieldFileNameStart 〈 PosCloseBoundary And FieldFileNameStart 〉 PosopenBoundary Then

FieldFileNameSize = InStrB(FieldFileNameStart,FormData,ChrB(34)) - FieldFileNameStart '(")的ASC值=34

FormFileName = bin2str(MidB(FormData,FieldFileNameStart,FieldFileNameSize))

Else

FormFileName = ""

End If

'Content-Type起始位置(Content-Type: xxxxx)

FieldFileCTStart = InStrB(PosOpenBoundary,FormData,str2bin("Content-Type:")) + 14

If FieldFileCTStart 〈 PosCloseBoundary And FieldFileCTStart 〉 PosOpenBoundary Then

FieldFileCTSize = InStrB(FieldFileCTStart,FormData,str2bin(VbCrLf & VbCrLf)) - FieldFileCTStart

FormFileCT = bin2str(MidB(FormData,FieldFileCTStart,FieldFileCTSize))

Else

FormFileCT = ""

End If

'数据起始位置:2个CRLF开始

DataStart = InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf & VbCrLf)) + 4

If FormFileName 〈〉 "" Then

'数据长度,减1是因为数据文件的存取字节数问题(可能是AppendChunk方法的问题):

'由于字节数为奇数的图象存到数据库时会去掉最后一个字符导致图象不能正确显示, 

字节数为偶数的数据文件就不会出现这个问题,因此必须保持字节数为偶数。

DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 1

FormFieldData = MidB(FormData,DataStart,DataSize)

Else

'数据长度,减2是因为分隔标志串前有一个CRLF

DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 2

FormFieldData = bin2str(MidB(FormData,DataStart,DataSize))

End If

'建立一个Dictionary集存储Form中各个Field的相关数据

Set Field = CreateUploadField()

Field.Name = FormFieldName

Field.FilePath = FormFileName

Field.FileName = GetFileName(FormFileName)

Field.ContentType = FormFileCT

Field.Length = LenB(FormFieldData)

Field.Value = FormFieldData

Fields.Add FormFieldName, Field

PosOpenBoundary = PosCloseBoundary

PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr)

Wend

Set GetUpload = Fields

End Function


'把二进制字符串转换成普通字符串函数

Function bin2str(binstr)

Dim varlen,clow,ccc,skipflag

'中文字符Skip标志

skipflag=0

ccc = ""

If Not IsNull(binstr) Then

varlen=LenB(binstr)

For i=1 To varlen

If skipflag=0 Then

clow = MidB(binstr,i,1)

'判断是否中文的字符

If AscB(clow) 〉 127 Then

'AscW会把二进制的中文双字节字符高位和低位反转,所以要先把中文的高低位反转

ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))

skipflag=1

Else

ccc = ccc & Chr(AscB(clow))

End If

Else

skipflag=0

End If

Next

End If

bin2str = ccc

End Function




'把普通字符串转成二进制字符串函数

Function str2bin(varstr)

str2bin=""

For i=1 To Len(varstr)

varchar=mid(varstr,i,1)

varasc = Asc(varchar)

' asc对中文字符求出来的值可能为负数,

' 加上65536就可求出它的无符号数值 

' -1在机器内是用补码表示的0xffff,

' 其无符号值为65535,65535=-1+65536

' 其他负数依次类推。

If varasc〈0 Then

varasc = varasc + 65535

End If

'对中文的处理:把双字节低位和高位分开

If varasc〉255 Then

varlow = Left(Hex(Asc(varchar)),2)

varhigh = right(Hex(Asc(varchar)),2)

str2bin = str2bin & chrB("&H" & varlow) & chrB("&H" & varhigh)

Else

str2bin = str2bin & chrB(AscB(varchar))

End If

Next

End Function

'取得文件名(去掉Path)

Function GetFileName(FullPath)

If FullPath 〈〉 "" Then

FullPath = StrReverse(FullPath)

FullPath = Left(FullPath, InStr(1, FullPath, "/") - 1)

GetFileName = StrReverse(FullPath)

Else

GetFileName = ""

End If

End Function

〈/SCRIPT〉

〈SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT〉

function CreateUploadField(){ return new uf_Init() }

function uf_Init(){

this.Name = null

this.FileName = null

this.FilePath = null

this.ContentType = null

this.Value = null

this.Length = null

}

〈/SCRIPT〉


//新闻添加

〈!--#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〉


//新闻列表显示

〈%

dim myfso,myread

set myfso=createobject("scripting.filesystemobject")

set myread=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)

if myread.atendofstream then

Response.Write "目前没有添加新闻"

Response.End

else

dim mytext,listarray

mytext=myread.readall

listarray=split(mytext,"|") '#######把所有记录分割成一个数组a

dim recordcount,pagecount, pagesize, pagenum

recordcount=ubound(listarray)'############记录条数

pagesize=2

pagecount=recordcount/pagesize '#######取得页面数

if instr(1,pagecount,".")=null or instr(1,pagecount,".")=0 then

pagenum=pagecount

else

pagenum=int(pagecount)+1

end if

dim topage

topage=cint(Request.QueryString ("topage")) '########取得要显示的页面

if topage〈=0 then

topage=1

end if

if topage〉pagenum then

topage=pagenum

end if

dim i,j,n

b=listarray

for i=0 to recordcount-1 '########把每一条记录组成一个数组

j=split(listarray(i),",")

if ubound(j)=6 then

b(i)="〈SPAN style='COLOR: #ffbd00; FONT-SIZE: 7px'〉〈li〉〈/SPAN〉〈span style='font-size:10pt'〉〈a href='news_view.asp?id=" & j(0) & "' target=blank〉" & j(1) & "(图)〈/a〉 点击:" & j(4)&"次 最后发布时间:"&j(5)&"〈/span〉"

else

end if

next

'########把记录反排序存储在新的数组实现按时间反排序

dim c(100)

n=0

for i=recordcount to 0 step -1

c(n)=b(i)

n=n+1

next

dim currentrecord

currentrecord=pagesize*(topage-1)+1 '#########显示每一页

for k=1 to pagesize

if len(c(currentrecord))=0 then

exit for

end if

Response.Write c(currentrecord)&"〈br〉"

currentrecord=currentrecord+1

next

Response.Write "〈body bgcolor=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=0〉"

for m=1 to pagenum

response.write "〈span style=font-size:10pt〉〈a href=news_list.asp?topage="&m&"〉"&m&"〈/a〉〈/span〉 "

next

end if%>

//新闻删除

〈!--#include file="news_session.asp"--〉

〈%

dim id

id=Request.QueryString ("id")

dim myfso

set myfso=createobject("scripting.filesystemobject")

if myfso.FileExists(server.mappath("./news_content/"&id&".txt"))then

myfso.DeleteFile (server.mappath("./news_content/"&id&".txt"))'#############删除新闻内容

end if

dim mytext2,myread2

set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)

if myread2.atendofstream then

Response.Write "没有新闻内容"

myread2.close

Response.End

end if

mytext2=myread2.readall

myread2.close

dim listarray,i,h,count,sf,title

listarray=split(mytext2,"|") '#########读取记录并以#分割成listarray数组

count=ubound(listarray)

for i=0 to count '###########根据ID找到该新闻实现删除功能

sf=split(listarray(i),",")

if right(sf(0),7)=right(id,7) then

dim thisid

thisid=i

'#######为6说明上传了图片,删除新闻图片和该列表记录

if ubound(sf)=6 then

myfso.deletefile(server.MapPath ("./images/"&sf(6)))

end if

exit for

end if

next

dim mytext,mappath

mappath=server.mappath("./")

set mytext=myfso.createtextfile(mappath&"/new_list.asp",-1,0)

for i=0 to thisid-1' ##########把所有数据重新写入文件

mytext.write listarray(i)&"|"

next

for i=thisid+1 to ubound(listarray)

if i=ubound(listarray) then

mytext.write listarray(i)

exit for

else

mytext.write listarray(i)&"|"

end if

next

mytext.close

%〉

〈script language="javascript"〉

alert("删除成功");

location.href =("news_admin1.asp");

〈/script〉

---------------

news_view.asp

〈% Response.Expires=0

dim myid,myfso,myread,mytext1

myid=request.querystring("id")

if len(myid)=0 then

Response.Write "没有该新闻"

Response.End

end if

set myfso=createobject("scripting.filesystemobject")

set myread=myfso.opentextfile(server.mappath("./news_content/"&myid&".txt"),1,0)

if myread.atendofstream then

Response.Write "没有新闻内容"

Response.End

else

mytext1=myread.readall '#######打开对应的新闻内容文件,并读取用变量存储

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)

result=result+" "

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

myread.close

end if

dim mytext2,myread2

set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)

if myread2.atendofstream then

Response.Write "没有新闻内容"

Response.End

else

mytext2=myread2.readall

myread2.close

 dim listarray,i,h

listarray=split(mytext2,"|") '#########读取记录并以#分割成listarray数组

dim count,sf,title,src

count=ubound(listarray)

for i=0 to count '###########根据ID找到该新闻并把文章点击次数加1

sf=split(listarray(i),",")

if right(sf(0),7)=right(myid,7) then

title=sf(1)

src=sf(3)

sf(4)=sf(4)+1

'#######为6说明上传了图片,存储为新的数组

if ubound(sf)=6 then

listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)&","&sf(6)

dim mypic

mypic=sf(6)

else

listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)

end if

'##################

exit for

end if

next

dim k,mytext,mappath

mappath=server.mappath("./")

set mytext=myfso.createtextfile(mappath&"/new_list.asp",-1,0)

for i=0 to ubound(listarray)' ##########把所有数据重新写入文件

if i=ubound(listarray) then

mytext.write listarray(i)

else

mytext.write listarray(i)&"|"

end if

next

Response.Write "〈body bgcolor=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=0〉"

Response.Write"〈div align=center style=font-size:13pt〉〈strong〉"&title&"〈/strong〉〈span〉〈/div〉〈br〉"

Response.Write "〈hr size=1〉"

if len(mypic)〈〉0 then

Response.write "〈center〉〈img src='./images/"&mypic&"'〉〈/center〉"

end if

Response.Write "〈span style=font-size:10pt〉"&htmlencode2(mytext1)&"〈/span〉"

Response.Write "〈br〉〈div align=right style='font-size:9pt'〉新闻来源:〈font color=red〉"&src&"〈/font〉〈/div〉"

%〉

〈OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"〉

〈param name="Command" value="Close"〉

〈/object〉

〈center〉〈input type="button" value="关闭窗口" onclick="closes.Click();"〉〈/center〉

〈% end if%〉

//新闻修改

‘#######news_update.asp

〈!--#include file="news_session.asp"--〉

〈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〉

〈% dim myid

myid=Request.QueryString ("id")

if len(myid)=0 then

Response.Write "没有该新闻"

Response.End

end if

dim myfso,myread,mytext,newscontent

'#######打开对应的新闻内容文件,并读取用变量存储

set myfso=createobject("scripting.filesystemobject")

if myfso.FileExists (server.mappath("./news_content/"&myid&".txt")) then

set myread=myfso.opentextfile(server.mappath("./news_content/"&myid&".txt"),1,0)

newscontent=myread.readall

myread.close

newscontent=replace(newscontent,"〈br〉",chr(13))

newscontent=replace(newscontent," "," ")

newscontent=replace(newscontent," ",chr(32))

newscontent=replace(newscontent,"'' ",chr(34))

else

Response.Write "该新闻已被删除"

Response.End

end if

dim mytext2,myread2 '#######打开新闻列表文件

set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)

if myread2.atendofstream then

Response.Write "没有新闻内容"

Response.End

end if

mytext2=myread2.readall

dim listarray

listarray=split(mytext2,"|") '#########读取记录并以#分割成listarray数组

dim count,sf,i,title,src

count=ubound(listarray)

for i=0 to count '###########根据ID找到该新闻并用变量存储给新闻的标题

sf=split(listarray(i),",")

if right(sf(0),7)=right(myid,7) then

title=sf(1)

src=sf(3)

exit for

end if

next

%〉

〈head〉

〈style〉

td {font-size:9pt}

INPUT.buttonface {

BACKGROUND-COLOR: #0079F2; BORDER-BOTTOM: #333333 1px outset; BORDER-LEFT: #333333 1px outset; BORDER-RIGHT: #ffffff 1px outset; BORDER-TOP: #ffffff 1px inset; COLOR: black; FONT-SIZE: 9pta { color: #000000; text-decoration: none}

.text {font-size:11pt}

INPUT.buttonface2 {

BACKGROUND-COLOR: #EDF0F5; COLOR: black; FONT-SIZE: 9pta { color: #000000; text-decoration: none}

a:hover { color: white; text-decoration: underline overline; background: #007EBB}

.text {font-size:11pt}

〈/style〉

〈/head〉

〈body bgcolor=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=0〉

〈form method="POST" action="news_updateing.asp" name="form1" enctype="multipart/form-data" onsubmit="return form1_onsubmit()"〉

〈div align="left"〉

〈table border="1" width="752" height="240" cellspacing="0" cellpadding="0"〉

〈tr〉

〈td colspan="2" height="12" align="center" width="800" style="font-size:12pt"〉〈strong〉新闻发布系统后台管理--新闻修改〈/strong〉〈/td〉

〈/tr〉

〈tr〉

〈td width="119" height="12" style="font-size:9pt"〉新闻标题〈/td〉

〈td width="675" height="12"〉

〈input type="text" name="newtitle" size="94" value="〈%=title%〉" class="buttonface2 "〉

〈/td〉

〈/tr〉

〈tr〉

〈td width="119" height="213" style="font-size:9pt"〉

新〈br〉

闻〈br〉

内〈br〉

容〈/td〉

〈td width="675" height="213"〉

〈textarea rows="14" name="newcontent" cols="93" style="BACKGROUND-COLOR: #EDF0F5"〉〈%=newscontent%〉〈/textarea〉

〈br〉

〈/td〉

〈/tr〉

〈tr〉

〈td width="119" height="4" style="font-size:9pt"〉新闻来源〈/td〉

〈td width="675" height="4"〉

〈input type=text name="newssrc" value="〈%=src%〉" size="93" class="buttonface2 "〉

〈/td〉
〈/tr〉

〈tr〉

〈td width="119" height="5" style="font-size:9pt"〉图片上传〈/td〉

〈td width="675" height="5"〉 〈input type="file" name="client1" size="20" readonly LANGUAGE=javascript onblur="return client_onblur(1)" 〉〈/td〉

〈/tr〉

〈/table〉

〈/div〉

〈p〉

〈input type="submit" value="确认" name="B1" style="font-size: 10pt; color: #000000; " class="buttonface"〉

〈input type="reset" value="全部重写" name="B2" style="font-size:10pt;color:#000000;" 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_add.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"〉〈/p〉

〈input type=hidden name="myid" value="〈%=myid%〉"〉

〈INPUT type="hidden" name="server1"〉

〈input type="hidden" name="mysession" value="mysession"〉

〈/form〉

##########

news_updating.asp

〈!--#include file="news_session.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 mytitle,content,src,id,mysession

mysession=Fields("newtitle").value

if len(mysession)=0 then

Response.Write "非法登陆或超时间,请重新登陆"

Response.End

end if

mytitle=Fields("newtitle").value

mytitle=replace(mytitle,"|","|")

mytitle=replace(mytitle,"〈br〉","")
content=Fields("newcontent").value

src=Fields("newssrc").value

src=replace(src,"|","|")

src=replace(src,"〈br〉","")

id=trim(right(Fields("myid").value,12))

if len(mytitle)=0 then

Response.Write "〈script〉"

Response.Write "alert('出错!新闻标题不能为空!');"

Response.Write"location.href=history.go(-1);"

Response.Write "〈/script〉"

end if

if len(content)=0 then

Response.Write "〈script〉"

Response.Write "alert('出错!新闻内容不能为空!');"

Response.Write"location.href=history.go(-1);"

Response.Write "〈/script〉"

end if

if len(src)=0 then

Response.Write "〈script〉"

Response.Write "alert('出错!新闻来源不能为空!');"

Response.Write"location.href=history.go(-1);"

Response.Write "〈/script〉"

end if

'############################################################################################图片更该功能的实现

newfile="client1"

If Fields(newfile).FileName〈〉"" Then

set file_0=Server.CreateObject("Scripting.FileSystemObject")

dim contextname

contextname=right(Fields("client1").FileName,4)

imageid=id&contextname

if contextname〈〉".gif" and contextname〈〉".jpg" then '#########判断上传文件格式

Response.Write "〈script〉"

Response.Write "alert('出错!上传文件格式不对 只能为jpg/gif图片格式!');"

Response.Write"location.href=history.go(-1);"

Response.Write "〈/script〉"

end if

file_name=Server.MapPath("./images/"&imageid&"")

'#####################################如果原来有图片文件主名为id的则删除该图片

if file_0.fileexists(server.MapPath ("./images/"&id&".gif")) then

Set f3 = file_0.GetFile(server.MapPath ("./images/"&id&".gif"))

f3.Delete

end if

if file_0.fileexists(server.MapPath ("./images/"&id&".jpg")) then

Set f3 = file_0.GetFile(server.MapPath ("./images/"&id&".jpg"))

f3.Delete

end if

'########################################写入图片

set outstream=file_0.openTextFile(file_name,8,-1)

binstr=Fields("client1").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_0.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

'#######################################################################################################

dim myfso,mywrite '#######修改新闻详细内容

set myfso=createobject("scripting.filesystemobject")

if myfso.FileExists(server.mappath("./news_content/"&id&".txt")) then

myfso.DeleteFile (server.mappath("./news_content/"&id&".txt"))

end if

set mywrite=myfso.createtextfile(server.mappath("./news_content/"&id&".txt"),-1,0)

mywrite.write content

dim mytext2,myread2 '#########修改新闻的标题来源

set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)

mytext2=myread2.readall

dim listarray,i,h,count,sf

listarray=split(mytext2,"|") '#########读取记录并以#分割成listarray数组

count=ubound(listarray)

for i=0 to count '###########根据ID找到该新闻记录

sf=split(listarray(i),",")

if right(sf(0),7)=right(id,7) then

sf(1)=mytitle

sf(3)=src

'#######为6说明上传了图片,存储新的数组实现查看记录点击次数加1

if ubound(sf)=6 then

If Fields(newfile).FileName〈〉"" Then

sf(6)=imageid

end if

listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)&","&sf(6)

else

listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)

end if

'##################

exit for

end if

next

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

'##########################

dim k,mytext,mappath

mappath=server.mappath("./")

set mytext=myfso.createtextfile(mappath&"/new_list.asp",-1,0)

for i=0 to ubound(listarray)' ##########把所有数据重新写入文件

if i=ubound(listarray) then

mytext.write htmlencode2(listarray(i))

else

mytext.write htmlencode2(listarray(i)&"|")

end if

next

%〉

〈script language="javascript"〉

alert("更改成功");

window.location=("news_admin1.asp");

〈/script〉

你可能感兴趣的:(JavaScript,object,function,File,input,asp)