深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

用文本+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>
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved