2015年2月24日 星期二

瀏覽人次計算


利用Request.ServerVariables("Remote_Addr") 計算瀏覽人次


  1. 抓取cliend端ip
    Request.ServerVariables("Remote_Addr")
  2. 將cliend端ip存入session
  3. 條件(1或2):
    1.判斷比較「cliend端ip」與「session存入的ip」,不相同。
    2.判斷session值為空。
    執行動作:計數+1。 session存入ip 。
  4. 完畢。


<%
   sqlstr = "SELECT top 1 * FROM WebCount"
   Set Rs = Server.CreateObject("ADODB.Recordset")
   Rs.open sqlstr,connE, 1, 3
   if session("RemoteAddr_E") = "" or session("RemoteAddr_E") <> Request.ServerVariables("Remote_Addr") then
      Rs("Web_Count") = Rs("Web_Count") + 1
      session("RemoteAddr_E") = Request.ServerVariables("Remote_Addr")
      Rs.update
      Web_E_Count = "0000000" & Rs("Web_Count")
      Session("Web_E_Count") = right(Web_E_Count,7)
   End if
   Rs.close
   set Rs = nothing
%>

asp下載遠端檔案的程式碼







<%
'將圖片欄位讀出,並存入 strUrl 變數中
Dim strUrl

Do While not RS.EOF

strUrl = strUrl & RS("图片")

RS.MoveNext

Loop

'將 strUrl 折解,並存入 arrUrl 陣列中
Dim arrUrl

arrUrl = Split(strUrl, ";")

'1、檢查遠端檔案是否存在,若不存在則警告訊息,但不影響程式進行
'2、檢查本地有否對應目錄,若不存在則建立目錄
'3、將遠端檔案下載到本地
Dim winPath1, winPath2
Dim arrPath
Dim FileName
Dim i, j
Dim Total
Dim ErrText

winPath1 = "E:\Temp\PULADA\"  '此目錄必須自己手動建立

For i = LBound(arrUrl) to UBound(arrUrl) - 1

'將 arrUrl(i) 拆解為另一陣列 arrPath,以便取得完整檔名
arrPath = Split(Replace(arrUrl(i), "http://" , ""), "/")

'取得完整檔名
FileName = arrPath(UBound(arrPath))

'1、檢查遠端檔案是否存在,若不存在則警告訊息,但不影響程式進行
Set XMLHTTP = Server.Createobject("MSXML2.ServerXMLHTTP.5.0")

XMLHTTP.Open "GET", arrUrl(i), false
XMLHTTP.Send()

'判斷遠端檔案是否存在,200 代表存在,404 代表不存在
If XMLHTTP.Status <> 200 Then

Response.Write "<font color=FF0000>第 " & i + 1 & " 筆:失敗" & "<br>"

'記錄錯誤訊息,然後在程式執行完後顯示
ErrText = ErrText & arrUrl(i) & "<br>"

Else

RemoteFile = XMLHTTP.ResponseBody

'2、檢查本地有否對應目錄,若不存在則建立目錄
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

For j = LBound(arrPath) to UBound(arrPath) - 1

winPath2 = winPath2 & arrPath(j) & "\"

'判斷目的目錄是否存在,若不存在則建立
If not FSO.FolderExists(winPath1 & winPath2) Then
FSO.CreateFolder(winPath1 & winPath2)
End If

Next

Set FSO = Nothing

'3、將遠端檔案下載到本地
Set objAdostream = Server.Createobject("ADODB.Stream")

objAdostream.Open()
objAdostream.Type = 1
objAdostream.Write(RemoteFile)
objAdostream.SaveToFile(winPath1 & winPath2 & FileName), 2  '2 代表不詢問,直接覆蓋
objAdostream.SetEOS

Set objAdostream = Nothing

Response.Write "<font color=0000FF>第 " & i + 1 & " 筆:成功" & "<br>"

'記錄成功的筆數
Total = Total + 1

'winPath 必須清除內容,不然會出現建立目錄時產生無限迴圈
winPath2 = ""

End If

Response.Flush
Response.Clear

Next

Response.Write "<br><br>"
Response.Write "<font color=0000FF>總相片數應為:</font>" & UBound(arrUrl, 1) & "<br>"
Response.Write "<font color=0000FF>實際下載數為:</font>" & Total & "<br>"
Response.Write "<font color=0000FF>未下載的連結:</font>" & "<br>" & ErrText & "<br>"

%>




資料來源:
如何用 asp 下載網址有中文字的遠端檔案
http://www.blueshop.com.tw/board/FUM200410061525290EW/BRD20140715120104M6P.html



本站其他相關資料 : 
抓取遠端網頁錯誤代碼404,檢查遠端檔案是否存在
http://gdlion.blogspot.tw/2015/02/httpwebrequest404.html


2015年2月23日 星期一

抓取遠端網頁錯誤代碼404,檢查遠端檔案是否存在




<%
Function postFormData(url, data)
    Dim xhr : Set xhr = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
    xhr.open "POST", url, false
    xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xhr.send Data
    postFormData=xhr.Status '錯誤代碼

'自訂錯誤內容
'    If (xhr.Status = 200) then
'       postFormData = xhr.ResponseText
'    ElseIf (xhr.Status = 404) then
'       postFormData = xhr.ResponseText
'    Else
'        Err.Raise 1001, "postFormData", "Post to " & url & " failed with " & xhr.Status
'    End If

set xhr = Nothing
End Function
%>




<%
'如果A電腦沒有檔案,抓取B電腦的
url="http://100.100.100.111/big5/gencaa/upload/" & Rs("FilePath")
if postFormData(url,"") = 404 then
mail.AddAttachment "http://100.100.100.222/big5/gencaa/upload/" & Rs("FilePath")
else
mail.AddAttachment "http://100.100.100.111/big5/gencaa/upload/" & Rs("FilePath")
end if
%>






本站其他相關資料:




其他:
httpwebrequest在 asp 的運用

2015年2月15日 星期日

asp執行dos指令,複製檔案






dim WShShell,fs,f
Set WShShell = Server.CreateObject("WScript.Shell")
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.CreateTextFile(Server.Mappath("C.bat"),true)

'f.write("copy " & Server.Mappath("aa.txt") & " " & Server.Mappath("bb.txt") & " /Y")
f.write("copy D:\WebSite\aa.txt D:\WebSite\bb.txt /Y")
f.close

WShShell.Run Server.Mappath("C.bat"), 1, True

set f=nothing
set fs=nothing
set WShShell=nothing




2015年2月12日 星期四

整個網頁變黑白灰階




重大災害,以示哀悼



IE 與 google chrome 適用 (推薦)

<head>

<meta http-equiv="Content-Type" content="text/html; charset=big5">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />  

<style type="text/css">
/*IE和Chrome*/
html {overflow-y:scroll;filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);-webkit-filter: grayscale(100%);}

/*IE*/
body *{
filter:gray;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
</style>
</head>



2015年2月8日 星期日

解決 中文檔名下載變亂碼

想到用<a href="...">搭配javascript:window.open( )


成功 :
   <li><a href="/AAFile/bg/files/<%=Rs("edit_file1")%>" onclick="window.open(this.href, '', ''); return false;" title="<%=Rs("edit_file1_desc")%>(另開新視窗)"><%=Rs("edit_file1_desc")%></a><p><sup><%Response.Write "(" + Split(Rs("edit_time")," ")(0) + "更新)"%></sup></li>



參考 :


http://blog.xuite.net/vexed/tech/53799118-%E7%94%A8+%3Ca+href%3D%22...%22+%3E+%E5%AF%A6%E4%BD%9C+window.open()

File server 檔案備份設定

檔案 備份
apfile   backup














鏈結標籤< a 裡面可以加javascript


鏈結標籤< a > 裡面可以加javascript

可用在以圖片為按鈕


 <tr>
                  <td colspan="2" height="16" align="right" valign="middle"> <img src="images/arrow01.gif" width="10" height="10" alt=" ">搜
                    尋 字 串︰</td>
                  <td height="16" valign="middle" width="75%">
                    <input name=p size=20 value="網路">
                    <a onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image201','','images/search_01.gif',1)" onBlur="MM_swapImgRestore()" onFocus="MM_swapImage('Image201','','images/search_01.gif',1)">
                    <INPUT TYPE="image" name="Image201" border="0" src="images/search.gif" alt="確定搜尋" width="90" height="23"
                           align="absbottom">
                    </a> </td>
                </tr>

檔案與資料夾,建立、刪除




Set fs=Server.CreateObject("Scripting.FileSystemObject")

'來源檔案存在  ---開始---
if fs.FileExists(Src_fName) then

'建立目的資料夾,如果沒有此資料夾,則建立資料夾。
ary_folder = Split(fPath,"\")
Des_fPath = "D:\APfileBK"
Des_fName = Des_fPath & "\" & fName


For i = 0 to UBound(ary_folder)-1
Des_fPath = Des_fPath & "\" & ary_folder(i)
IF not fs.FolderExists(Des_fPath) then
'Response.Write("<br>Des_fPath : " & Des_fPath)
fs.CreateFolder(Des_fPath)
End if
Next


'刪除 '@20141015 檔案有存在,先刪除
if fs.FileExists(Des_fName) then
  'response.write("<br>Des_fName File exists! " &  Des_fName)
'Flag(true or false):預設值為false,true表可以刪除唯讀屬性 設定的檔案,若不設為 true,則遇到唯讀屬性檔案時將產 生『沒有使用權限』的錯誤 (err.number=70)
   
fileOpen.close '關閉檔  
fs.Deletefile Des_fName,true  '刪除檔案 先關閉,才能刪除
end if



'搬移
fs.CopyFile Src_fName,Des_fPath & "\" ,true 'overwrite(是否覆蓋):預設值為true




#####################################################

#T=============================
#T=FSO相關操作
#T= 判斷目錄是否存在
<%
Function IsFloderExist(strFolderName)
    SET FSO=Server.CreateObject("Scripting.FileSystemObject")
    IF(FSO.FolderExists(strFolderName))THEN
        IsFloderExist = True
    ELSE
        IsFloderExist = False
    END IF
    SET FSO=NOTHING
End Function
%>

#T= 創建目錄
<%
Function CreateFolder(strFolderName)
    SET FSO=Server.CreateObject("Scripting.FileSystemObject")
    IF(FSO.FolderExists(strFolderName) = False)THEN
        FSO.CreateFolder(strFolderName)
    END IF
    SET FSO=NOTHING
END Function
%>

#T= 刪除目錄
<%
Function DeleteFolder(strFolderName)
    SET FSO=Server.CreateObject("Scripting.FileSystemObject")
    IF(FSO.FolderExists(strFolderName))THEN
        FSO.DeleteFolder(strFolderName)
    END IF
    SET FSO=NOTHING
END Function
%>

#T= 判斷文件是否存在
<%
Function IsFileExist(strFileName) 
    SET FSO=Server.CreateObject("Scripting.FileSystemObject")
    IF(FSO.FileExists(strFileName))THEN
        IsFileExist = True
    ELSE
        IsFileExist = False
    END IF
    SET FSO=NOTHING
End Function
%>

#T= 刪除文件
<%
Function DeleteFile(strFileName)
    SET FSO=Server.CreateObject("Scripting.FileSystemObject")
    IF(FSO.FileExists(strFileName))THEN
        FSO.DeleteFile(strFileName)
    END IF
    SET FSO=NOTHING
END Function
%>