<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的人生路  
    日歷
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567
    統(tǒng)計(jì)
    • 隨筆 - 74
    • 文章 - 57
    • 評(píng)論 - 7
    • 引用 - 0

    導(dǎo)航

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    顏色

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

     

    要讀懂這些代碼主要是要了解ASP中操作二進(jìn)制數(shù)據(jù)的對(duì)象ADODB.Stream!本程序主要用的就是Adodb.Stream,如果你有這個(gè)基礎(chǔ),就可以進(jìn)一步添加更多的功能如加入雜點(diǎn),漸變底色,數(shù)字行列錯(cuò)位,筆畫短點(diǎn),提高被ocr識(shí)別的不可能。目前還沒有好的識(shí)別引擎,昨天下載了個(gè)號(hào)稱能識(shí)別圖像驗(yàn)證碼90%的!把4321識(shí)別成 89910,所以圖像碼還是比較安全的。

    在網(wǎng)上看到有暴力破解的方法,如果我用圖像附加碼+禁止外部提交+10次密碼錯(cuò)誤封帳號(hào) +50次密碼錯(cuò)誤瑣死IP+10秒的防刷新間隔注冊(cè)頁,登陸頁均要加上+禁止外部提交,這樣,暴力破解應(yīng)該就沒戲了。

    Asp文件:Code.Asp
    數(shù)據(jù)文件:body.Fix , Head.Fix
    用法:<img src="code.asp">

    Response.buffer = true
    NumCode

    Function NumCode()
    Response.Expires = -1
    Response.AddHeader "Pragma","no-cache"
    Response.AddHeader "cache-ctrol","no-cache"
    dim zNum,i,j
    dim Ados,Ados1
    Randomize timer
    生成隨機(jī)四位數(shù)字:
    zNum = cint(8999*Rnd+1000)
    傳遞給session
    Session("GetCode") = zNum
    該for循環(huán)是將隨機(jī)數(shù)字放入一個(gè)下標(biāo)3的數(shù)組,便于提供給后面的陣列變換
    dim zimg(3),NStr
    NStr=cstr(zNum)
    For i=0 to 3
    zimg(i)=cint(mid(NStr,i+1,1))
    Next
    dim Pos

    '定義二個(gè) ADODB.Stream binary對(duì)象,作圖像數(shù)據(jù)操作之用:

    set Ados=Server.CreateObject("Adodb.Stream")
    Ados.Mode=3
    Ados.Type=1
    Ados.Open
    set Ados1=Server.CreateObject("Adodb.Stream")
    Ados1.Mode=3
    Ados1.Type=1
    Ados1.Open
    '載入0~9的數(shù)字?jǐn)?shù)據(jù)10x100的,Gbr的陣列數(shù)據(jù),每個(gè)320字節(jié),10個(gè)數(shù)字3200byte
    'BGR一個(gè)點(diǎn),10x10個(gè)點(diǎn)一個(gè)數(shù)字,一個(gè)點(diǎn)三個(gè)字節(jié)(二進(jìn)制8位,16進(jìn)制 00~FF)
    '一行10個(gè)點(diǎn) 30字節(jié) + 行結(jié)束標(biāo)記 00 00 二字節(jié) 32字節(jié),所以一個(gè)10x100寬小于長的圖像每個(gè)數(shù)字10x10是320字節(jié)
    '長大于寬的則無行結(jié)束標(biāo)記 0000,直接是300字節(jié)
    這些就是BMP 24bit的數(shù)據(jù)詳細(xì)信息了
    ‘至于頭部,也很簡(jiǎn)單,包含長寬,圖像開始標(biāo)記等等~~才54字節(jié),遠(yuǎn)沒jpg什么的復(fù)雜

    Ados.LoadFromFile(Server.mappath("body.Fix"))
    Ados1.write Ados.read(1280)
    '第一個(gè)for循環(huán),按生成的隨機(jī)數(shù)字順序從 10X100的數(shù)字陣列中提取出相應(yīng)的四個(gè)數(shù)字
    但是豎排的數(shù)字陣列
    for i=0 to 3
    Ados.Position=(9-zimg(i))*320
    Ados1.Position=i*320
    Ados1.write ados.read(320)
    next
    '清空已經(jīng)用完的ADOS的數(shù)據(jù),調(diào)入替換新的圖像頭54字節(jié)的頭文件
    Ados.LoadFromFile(Server.mappath("head.fix"))
    Pos=lenb(Ados.read())
    Ados.Position=Pos '指定Pos位置,即可再偏移54字節(jié)的位置添加圖形數(shù)據(jù)
    第二個(gè)for循環(huán),進(jìn)行數(shù)字的陣列變換,由豎排的塊轉(zhuǎn)換為橫排的數(shù)字塊
    方法是隔320字節(jié)抽取4次30字節(jié)寫入ados對(duì)象,再抽取偏移第二行的圖像數(shù)據(jù)
    30字節(jié)是因?yàn)閎mp 寬大于長時(shí)無00 00的行結(jié)束標(biāo)記
    for i=0 to 9 step 1
    for j=0 to 3
    Ados1.Position=i*32+j*320
    Ados.Position=Pos+30*j+i*120
    Ados.write ados1.read(30)
    next
    next
    Ados.Position=0
    response.BinaryWrite直接向客戶端發(fā)送圖像數(shù)據(jù)
    Response.ContentType = "image/BMP"
    Response.BinaryWrite Ados.read()
    Ados.Close:set Ados=nothing
    Ados1.Close:set Ados1=nothing
    End Function

    posted @ 2005-07-07 14:49 一天一點(diǎn)愛戀 閱讀(150) | 評(píng)論 (0)編輯 收藏
     
     每一個(gè)程序語言或開發(fā)工具都有一定的函數(shù)與用戶進(jìn)行溝通,Asp同樣如此。在Asp中負(fù)責(zé)將信息傳遞給用戶的對(duì)象就是Response對(duì)象。Response對(duì)象用于動(dòng)態(tài)響應(yīng)客戶端請(qǐng)求(Request),并將動(dòng)態(tài)生成的響應(yīng)結(jié)果返回到客戶端瀏覽器中,使用Response對(duì)象可以直接發(fā)送信息給瀏覽器、重定向?yàn)g覽器到另一個(gè) URL 或設(shè)置 cookie 的值等等。 Response對(duì)象在asp編程中非常廣泛,也是一種非常好用的工具。下面我們來具體看看Response對(duì)象:

    語法:
    Response.collection|property|method

    一、集合
    Response 對(duì)象只有一個(gè)集合 --Cookies,Cookies數(shù)據(jù)集合允許將數(shù)據(jù)設(shè)置在客戶端的瀏覽器中。若指定的 cookie 不存在,則創(chuàng)建它。若存在,則自動(dòng)更新數(shù)據(jù)。

    語法:Response.Cookies(Cookie)[Key.Attribute]

    這里的 cookie 是指定 cookie 的名稱。而如果指定了 key,則該 cookie 就是一個(gè)字典。attribute 指定 cookie 自身的有關(guān)信息。attribute 參數(shù)可以是下列之一 :

       Domain 只寫。若被指定,則 cookie 將被發(fā)送到對(duì)該域的請(qǐng)求中去。

       Expires 只寫。指定 cookie 的過期日期。為了在會(huì)話結(jié)束后將 cookie 存儲(chǔ)在客戶端磁盤上,必須設(shè)置該日期。若此項(xiàng)屬性的設(shè)置未超過當(dāng)前日期,則在任務(wù)結(jié)束后 cookie 將到期。

       HasKeys 只讀。指定 cookie 是否包含關(guān)鍵字。

       Path 只寫。若被指定,則 cookie 將只發(fā)送到對(duì)該路徑的請(qǐng)求中。如果未設(shè)置該屬性,則使用應(yīng)用程序的路徑。

    Secure 只寫。指定Cookie是否安全。

    示例:

    <%
    Response.Cookies("wrclub")("weburl")="http://www.wrclub.net"
    Response.Cookies("wrclub").path="/wrclub/"
    Response.Cookies("wrclub").Expires=#2003-11-30#
    %>

    二、方法

    Response.AddHeader Name,Value

    向應(yīng)答中添加一個(gè)新的HTML標(biāo)題。Name為新HTML標(biāo)題的名稱。Value為該頭變量的值。你可以添加任何名稱和任何值的HTML標(biāo)題。它并不替代現(xiàn)有的同名標(biāo)題。一旦標(biāo)題被添加,將不能刪除。

    Response.AppendToLog String

    向Web服務(wù)器的日志條目的末尾添加一字符串。String為要添加到日志文件中的字符串。

    Response.BinaryWrite Data

    該方法可以不經(jīng)任何字符轉(zhuǎn)換就將制定的信息寫到HTTP輸出,主要用于寫非字符串信息(如客戶端應(yīng)用程序所需的二進(jìn)制數(shù)據(jù)等)。Data是要發(fā)送的數(shù)據(jù)。

    Response.Clear

    刪除緩沖區(qū)的所有HTML輸出,但只刪除響應(yīng)正文而不刪除響應(yīng)標(biāo)題。可以用該方法處理錯(cuò)誤情況。需要注意的是,如果Response.Buffer設(shè)置為True,則該方法將導(dǎo)致運(yùn)行是錯(cuò)誤。

    Response.End

    強(qiáng)迫Web服務(wù)器停止執(zhí)行更多的腳本,并發(fā)送當(dāng)前結(jié)果,文件中剩余的內(nèi)容將不被處理。如果Response.Buffer設(shè)置為True,則調(diào)用Response.end將緩沖輸出。

    Response.Flush

    對(duì)于一個(gè)緩沖的回應(yīng),發(fā)送所有的緩沖信息。如果Response.Buffer設(shè)置為True,則該方法將導(dǎo)致運(yùn)行是錯(cuò)誤。

    Response.Redirect URL

    將客戶端的瀏覽器重定向到一個(gè)新的Internet地址。Url為新網(wǎng)頁的Internet地址。

    Response.Write Variant

    Response.Write是Response對(duì)象最常用的方法,該方法可以向?yàn)g覽器發(fā)送字符串。Variant是一字符串或一個(gè)具有字符串值的變量。

    三、屬性

    Response.Buffer

    緩沖一Active Server Page。回應(yīng)只到某一頁結(jié)束或Response.Flush或Response.End方法調(diào)用時(shí)才發(fā)送出去。服務(wù)器將輸出送給客戶端后就不能再設(shè)置Buffer屬性。

    Response.CacheControl

    指明是否Proxy服務(wù)器能緩存Active Server Page。缺省時(shí),其值為FALSE 。當(dāng)設(shè)置其屬性為Public時(shí),Proxy服務(wù)器可以緩沖由Asp產(chǎn)生的輸出。

    Response.CharSet(Charsetname)

    將字符集名稱(如GB)附加到Response對(duì)象中content-type標(biāo)題的后面,用來設(shè)置web服務(wù)器響應(yīng)給客戶端的文件字符編碼。一個(gè)可能的值為“ISO_LATIN_1”。

    Response.ContentType

    指明回應(yīng)內(nèi)容的類型。可能的值為text/plain和image/GIF,默認(rèn)值text/HTML。

    Response.Expires

    瀏覽器可以緩存當(dāng)前頁的時(shí)間長度,以分鐘為單位。

    Response.ExpiresAbsolute

    瀏覽器不能再緩存當(dāng)前頁的日期和時(shí)間。在未到期之前,可以返回。如果未指定時(shí)間,該主頁在當(dāng)天午夜到期;如果未指定日期,則到當(dāng)天指定時(shí)間到期。

    True/False = Response.IsClientConnected

    屬性為只讀,指明自上次調(diào)用Response.Write之后,客戶端是否仍然和服務(wù)器連接。該屬性允許用戶在客戶端和服務(wù)器沒有聯(lián)接的情況下有更多的控制。例如,在從客戶端提出請(qǐng)求起到服務(wù)器做出相應(yīng),其間要用去很長一段時(shí)間的情況下,這就可能有助于確保在繼續(xù)處理腳本之前客戶端仍是連通的。具有值TRUE或FALSE。

    Response.PICS (PICS 字符串)

    用于添加網(wǎng)頁的PICS等級(jí)。PICS級(jí)別指明某一網(wǎng)頁的內(nèi)容級(jí)別,比如暴力或色情的程度等。

    Response.Status = "狀態(tài)描述字符串"

    用來設(shè)置Web服務(wù)器要響應(yīng)的狀態(tài)行的值。

    posted @ 2005-07-07 14:48 一天一點(diǎn)愛戀 閱讀(191) | 評(píng)論 (0)編輯 收藏
     

    用過軟件的朋友都知道,進(jìn)度條是一個(gè)優(yōu)秀軟件的重要組成部分。
    它的存在能夠使用戶及時(shí)掌握程序的運(yùn)行進(jìn)度,確認(rèn)應(yīng)用程序正常工作。可是ASP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
    那幺如何實(shí)現(xiàn)進(jìn)度條呢?
    以下是本人的一些觀點(diǎn)(僅供參考)
    我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫)的時(shí)候,會(huì)專門用一個(gè)頁面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時(shí)候再跳轉(zhuǎn)到顯示頁面。這時(shí)我們就可以通過這些處理頁面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百張同樣的圖形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實(shí)現(xiàn)的基本相似
    以下是一些Source,希望能夠給各位有個(gè)啟發(fā)。
    response.buffer=true
    dim lostnum
    dim shownum
    delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
    其中dmax為表示整個(gè)程序需要處理多少(dmax)步才能完成整個(gè)處理程序.
    其中dstep表示當(dāng)前處理的步驟占整個(gè)處理過程中的分量,用數(shù)量表示。
    變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢(shì)必不可能畫一次img,事實(shí)上
    delayshow(100,10000)才畫一次,表示完成1%,因?yàn)?00占10000的1%.
    sub delayshow(dstep,dmax)
    dim total //顯示畫面100張img
    dim dtemp //過渡變量
    total=100
    dtemp=dstep
    dstep=dstep+lostnum
    if (dstep*total)/dmax<1 then
    //判斷當(dāng)要處理的東西連1%都沒有時(shí),不畫img同時(shí)用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時(shí)在處理。
    lostnum=lostnum+dtemp
    else
    for ccc=1 to fix((dstep*total)/dmax) //取整數(shù)
    Response.Write "<img src=""../images/delay1.jpg"">"
    next
    Response.Flush //將緩存里的東西(圖片)顯示出來
    //變量shownum用于存放目前已經(jīng)畫的img
    shownum=shownum+fix((dstep*total)/dmax)
    lostnum=0
    end if
    end sub
    //由于算法的問題,主要是取余造成不能完全畫100次,這時(shí)就需要
    過程showlost()將余下未畫的img,通通顯示處理,實(shí)現(xiàn)進(jìn)度條的等長
    sub showlost()
    for ccc=1 to (100-shownum)
    Response.Write ("<img src=""../images/delay1.jpg"">")
    next
    Response.Write "<BR>"
    Response.Flush
    end sub

    最后請(qǐng)注意
    這里需要用到緩存技術(shù)
    response.buffer=true;
    response.flush;
    response.end
    這些請(qǐng)參考MSDN幫助

    用過軟件的朋友都知道,進(jìn)度條是一個(gè)優(yōu)秀軟件的重要組成部分。
    它的存在能夠使用戶及時(shí)掌握程序的運(yùn)行進(jìn)度,確認(rèn)應(yīng)用程序正常工作。可是ASP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
    那幺如何實(shí)現(xiàn)進(jìn)度條呢?
    以下是本人的一些觀點(diǎn)(僅供參考)
    我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫)的時(shí)候,會(huì)專門用一個(gè)頁面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時(shí)候再跳轉(zhuǎn)到顯示頁面。這時(shí)我們就可以通過這些處理頁面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百張同樣的圖形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實(shí)現(xiàn)的基本相似
    以下是一些Source,希望能夠給各位有個(gè)啟發(fā)。
    response.buffer=true
    dim lostnum
    dim shownum
    delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
    其中dmax為表示整個(gè)程序需要處理多少(dmax)步才能完成整個(gè)處理程序.
    其中dstep表示當(dāng)前處理的步驟占整個(gè)處理過程中的分量,用數(shù)量表示。
    變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢(shì)必不可能畫一次img,事實(shí)上
    delayshow(100,10000)才畫一次,表示完成1%,因?yàn)?00占10000的1%.
    sub delayshow(dstep,dmax)
    dim total //顯示畫面100張img
    dim dtemp //過渡變量
    total=100
    dtemp=dstep
    dstep=dstep+lostnum
    if (dstep*total)/dmax<1 then
    //判斷當(dāng)要處理的東西連1%都沒有時(shí),不畫img同時(shí)用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時(shí)在處理。
    lostnum=lostnum+dtemp
    else
    for ccc=1 to fix((dstep*total)/dmax) //取整數(shù)
    Response.Write "<img src=""../images/delay1.jpg"">"
    next
    Response.Flush //將緩存里的東西(圖片)顯示出來
    //變量shownum用于存放目前已經(jīng)畫的img
    shownum=shownum+fix((dstep*total)/dmax)
    lostnum=0
    end if
    end sub
    //由于算法的問題,主要是取余造成不能完全畫100次,這時(shí)就需要
    過程showlost()將余下未畫的img,通通顯示處理,實(shí)現(xiàn)進(jìn)度條的等長
    sub showlost()
    for ccc=1 to (100-shownum)
    Response.Write ("<img src=""../images/delay1.jpg"">")
    next
    Response.Write "<BR>"
    Response.Flush
    end sub

    最后請(qǐng)注意
    這里需要用到緩存技術(shù)
    response.buffer=true;
    response.flush;
    response.end
    這些請(qǐng)參考MSDN幫助

    用過軟件的朋友都知道,進(jìn)度條是一個(gè)優(yōu)秀軟件的重要組成部分。
    它的存在能夠使用戶及時(shí)掌握程序的運(yùn)行進(jìn)度,確認(rèn)應(yīng)用程序正常工作。可是ASP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
    那幺如何實(shí)現(xiàn)進(jìn)度條呢?
    以下是本人的一些觀點(diǎn)(僅供參考)
    我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫)的時(shí)候,會(huì)專門用一個(gè)頁面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時(shí)候再跳轉(zhuǎn)到顯示頁面。這時(shí)我們就可以通過這些處理頁面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百張同樣的圖形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實(shí)現(xiàn)的基本相似
    以下是一些Source,希望能夠給各位有個(gè)啟發(fā)。
    response.buffer=true
    dim lostnum
    dim shownum
    delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
    其中dmax為表示整個(gè)程序需要處理多少(dmax)步才能完成整個(gè)處理程序.
    其中dstep表示當(dāng)前處理的步驟占整個(gè)處理過程中的分量,用數(shù)量表示。
    變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢(shì)必不可能畫一次img,事實(shí)上
    delayshow(100,10000)才畫一次,表示完成1%,因?yàn)?00占10000的1%.
    sub delayshow(dstep,dmax)
    dim total //顯示畫面100張img
    dim dtemp //過渡變量
    total=100
    dtemp=dstep
    dstep=dstep+lostnum
    if (dstep*total)/dmax<1 then
    //判斷當(dāng)要處理的東西連1%都沒有時(shí),不畫img同時(shí)用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時(shí)在處理。
    lostnum=lostnum+dtemp
    else
    for ccc=1 to fix((dstep*total)/dmax) //取整數(shù)
    Response.Write "<img src=""../images/delay1.jpg"">"
    next
    Response.Flush //將緩存里的東西(圖片)顯示出來
    //變量shownum用于存放目前已經(jīng)畫的img
    shownum=shownum+fix((dstep*total)/dmax)
    lostnum=0
    end if
    end sub
    //由于算法的問題,主要是取余造成不能完全畫100次,這時(shí)就需要
    過程showlost()將余下未畫的img,通通顯示處理,實(shí)現(xiàn)進(jìn)度條的等長
    sub showlost()
    for ccc=1 to (100-shownum)
    Response.Write ("<img src=""../images/delay1.jpg"">")
    next
    Response.Write "<BR>"
    Response.Flush
    end sub

    最后請(qǐng)注意
    這里需要用到緩存技術(shù)
    response.buffer=true;
    response.flush;
    response.end
    這些請(qǐng)參考MSDN幫助

    用過軟件的朋友都知道,進(jìn)度條是一個(gè)優(yōu)秀軟件的重要組成部分。
    它的存在能夠使用戶及時(shí)掌握程序的運(yùn)行進(jìn)度,確認(rèn)應(yīng)用程序正常工作。可是ASP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
    那幺如何實(shí)現(xiàn)進(jìn)度條呢?
    以下是本人的一些觀點(diǎn)(僅供參考)
    我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫)的時(shí)候,會(huì)專門用一個(gè)頁面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時(shí)候再跳轉(zhuǎn)到顯示頁面。這時(shí)我們就可以通過這些處理頁面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百張同樣的圖形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實(shí)現(xiàn)的基本相似
    以下是一些Source,希望能夠給各位有個(gè)啟發(fā)。
    response.buffer=true
    dim lostnum
    dim shownum
    delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
    其中dmax為表示整個(gè)程序需要處理多少(dmax)步才能完成整個(gè)處理程序.
    其中dstep表示當(dāng)前處理的步驟占整個(gè)處理過程中的分量,用數(shù)量表示。
    變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢(shì)必不可能畫一次img,事實(shí)上
    delayshow(100,10000)才畫一次,表示完成1%,因?yàn)?00占10000的1%.
    sub delayshow(dstep,dmax)
    dim total //顯示畫面100張img
    dim dtemp //過渡變量
    total=100
    dtemp=dstep
    dstep=dstep+lostnum
    if (dstep*total)/dmax<1 then
    //判斷當(dāng)要處理的東西連1%都沒有時(shí),不畫img同時(shí)用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時(shí)在處理。
    lostnum=lostnum+dtemp
    else
    for ccc=1 to fix((dstep*total)/dmax) //取整數(shù)
    Response.Write "<img src=""../images/delay1.jpg"">"
    next
    Response.Flush //將緩存里的東西(圖片)顯示出來
    //變量shownum用于存放目前已經(jīng)畫的img
    shownum=shownum+fix((dstep*total)/dmax)
    lostnum=0
    end if
    end sub
    //由于算法的問題,主要是取余造成不能完全畫100次,這時(shí)就需要
    過程showlost()將余下未畫的img,通通顯示處理,實(shí)現(xiàn)進(jìn)度條的等長
    sub showlost()
    for ccc=1 to (100-shownum)
    Response.Write ("<img src=""../images/delay1.jpg"">")
    next
    Response.Write "<BR>"
    Response.Flush
    end sub

    最后請(qǐng)注意
    這里需要用到緩存技術(shù)
    response.buffer=true;
    response.flush;
    response.end
    這些請(qǐng)參考MSDN幫助

    posted @ 2005-07-07 14:44 一天一點(diǎn)愛戀 閱讀(152) | 評(píng)論 (0)編輯 收藏
     
    ' ===================================================================
    ' 讀取數(shù)據(jù)庫中數(shù)據(jù)到數(shù)組的類
    ' 作者:心飛翔
    ' QQ:85166 E-MAIL:Apwmj@hotmail.com
    ' 聲明:
    ' 如采用本類模塊,請(qǐng)不要去掉這個(gè)說明,這段注釋不會(huì)影響執(zhí)行的速度.
    ' 各種用途均可免費(fèi)使用,但是修改后必須把修改后的文件發(fā)送一份給作者.
    ' 2004年5月18日
    ' ===================================================================


    DbPath = "test.mdb"'數(shù)據(jù)庫位置
    ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(DbPath)
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.open ConnStr


    Class Class_Read
    Public Arr,Rs,SQL,ArrTR,ArrTD,Page,TotalRead,TotalPage
    Public Function Read(SQL,TD,TR,PG)
    SQL = Replace(SQL,"'","")
    Page= Int(PG)
    Set Rs = Server.CreateObject("ADODB.Recordset") : Rs.open SQL,conn,1,1
    TotalRead= Rs.RecordCount
    If TotalRead>0 Then
    If TR>0 Then : Rs.PageSize = TR : Else : TR=TotalRead
    If TD>Rs.Fields.Count or TD<1 Then TD = Rs.Fields.Count
    If TotalRead Mod TR <>0 Then TotalPage = 1 : End If : TotalPage = TotalPage + Int(TotalRead/TR)
    If Page>=TotalPage Then Page=TotalPage : TR = TotalRead-TR*(TotalPage-1)
    If Page>1 Then Rs.absolutePage=Page Else Page=1
    End If
    reDim Arr(TD-1,TR)
    For ArrTR = 0 to TR-1 : If Rs.Eof Then Exit For
    For ArrTD = 0 to TD-1 : Arr(ArrTD,ArrTR) = Rs(ArrTD) : Next : Rs.MoveNext
    Next
    ArrTR = ArrTR-1
    Rs.Close
    Set Rs=Nothing
    End Function
    End Class
    '使用方法
    Dim C:Set C = New Class_Read
    C.Read ("SQL語句","讀取列數(shù)","讀取行數(shù)[既每頁顯示條數(shù)]","當(dāng)前頁數(shù)")
    Dim i
    For i=0 To C.ArrTR
    Response.Write "<br>內(nèi)容:"&C.Arr(0,i)
    Next
    Response.Write "<br>總記錄條數(shù):"&C.TotalRead
    Response.Write "<br>總頁數(shù) :"&C.TotalPage
    Response.Write "<br>當(dāng)前頁 :"&C.Page
    Response.Write "<br>當(dāng)前記錄數(shù):"&C.ArrTR+1

    posted @ 2005-07-07 14:36 一天一點(diǎn)愛戀 閱讀(196) | 評(píng)論 (0)編輯 收藏
     

    <%
    ' Moving to random record - Steven Jones' Extension
    If Not(記錄集名稱.bof and 記錄集名稱.eof) Then
    ' reset the cursor to the beginning
    If (記錄集名稱.CursorType > 0) Then
    記錄集名稱.MoveFirst
    Else
    記錄集名稱.Requery
    End If

    記錄集名稱_totalrn = -1
    記錄集名稱_totalrn = 記錄集名稱.RecordCount ' ony works on some recordsets, but much faster
    If (記錄集名稱_totalrn = -1) Then ' and if it didn't work, we still have to count the records.

    ' count the total records by iterating through the recordset
    記錄集名稱_totalrn=0
    While (Not 記錄集名稱.EOF)
    記錄集名稱_totalrn = 記錄集名稱_totalrn + 1
    記錄集名稱.MoveNext
    Wend

    ' reset the cursor to the beginning
    If (記錄集名稱.CursorType > 0) Then
    記錄集名稱.MoveFirst
    Else
    記錄集名稱.Requery
    End If

    End If

    ' now do final adjustments, and move to the random record
    記錄集名稱_totalrn = 記錄集名稱_totalrn - 1
    If 記錄集名稱_totalrn > 0 Then
    Randomize
    記錄集名稱.Move Int((記錄集名稱_totalrn + 1) * Rnd)
    End If
    End If
    ' all done; you should always check for an empty recordset before displaying data
    %>

    posted @ 2005-07-07 14:34 一天一點(diǎn)愛戀 閱讀(195) | 評(píng)論 (0)編輯 收藏
     
    ||Function TimeDiff(sBegin, sEnd)
    '||本函數(shù)計(jì)算兩個(gè)時(shí)間的差,可以不用更改直接使用
    '||作者:machinecat 2001/10/26
    '******************************

    '******************************
    '注:首先需要判斷用戶輸入的sBegin與sEnd之間的大小
    '可以通過DataDiff函數(shù)獲得兩者之間的時(shí)間差,不需要進(jìn)行復(fù)雜的時(shí)間換算
    '******************************

    Function TimeDiff(sBegin, sEnd)
    Dim iHourB, iMinuteB, iSecondB, iMiniSecondB
    Dim iHourE, iMinuteE, iSecondE, iMiniSecondE
    Dim dTimeB, dTimeE, dTimeDiff
    Dim iHour, iMinute, iSecond, iMiniSecond

    iHourB = clng(Left(sBegin, 2))
    iMinuteB = clng(Mid(sBegin, 4, 2))
    iSecondB = clng(Mid(sBegin, 7, 2))
    iMiniSecondB = clng(Mid(sBegin, 10, 4))

    iHourE = clng(Left(sEnd, 2))
    iMinuteE = clng(Mid(sEnd, 4, 2))
    iSecondE = clng(Mid(sEnd, 7, 2))
    iMiniSecondE = clng(Mid(sEnd, 10, 4))

    dTimeB = iHourB * 3600 + iMinuteB * 60 + iSecondB + iMiniSecondB / 1000
    dTimeE = iHourE * 3600 + iMinuteE * 60 + iSecondE + iMiniSecondE / 1000
    dTimeDiff = dTimeE - dTimeB

    iHour = Int(dTimeDiff / 3600)
    dTimeDiff = dTimeDiff - iHour * 3600
    iMinute = Int(dTimeDiff / 60)
    dTimeDiff = dTimeDiff - iMinute * 60
    iSecond = Int(dTimeDiff)
    dTimeDiff = dTimeDiff - Int(dTimeDiff)
    iMiniSecond = dTimeDiff

    TimeDiff = iHour & "小時(shí)" & iMinute & "分鐘" & iSecond & FormatNumber(iMiniSecond, 3) & "秒"
    End Function

    posted @ 2005-07-07 14:32 一天一點(diǎn)愛戀 閱讀(1540) | 評(píng)論 (1)編輯 收藏
     

    <%
    function URLconvert(str)
    convertstr=str
    urlLocation=instr(convertstr,"http://")

    if (urlLocation=0) and (mailLocation=0) then
    URLconvert=convertstr
    exit function
    end if

    if urlLocation<>0 then
    rightstr=str
    Do while urlLocation<>urlLocationend
    urlLocation=instr(rightstr,"http://")
    urlLocationend=InStrRev(rightstr,"http://")
    finalstr=finalstr&left(rightstr,urlLocation-1)
    midurlstr=mid(rightstr,urlLocation+1,1)
    do while (asc(midurlstr)>=45) and (asc(midurlstr)<=126)
    loopint=loopint+1
    midurlstr=mid(rightstr,urlLocation+loopint,1)
    if midurlstr="" then exit do
    loop
    endURLstr=mid(rightstr,urllocation,loopint)
    URLstr="<a href="&endURLstr&">"&endURLstr&"</a>"
    rightstr=mid(rightstr,urllocation+loopint)
    finalstr=finalstr&URLstr
    loopint=1
    Loop
    end if
    finalstr=finalstr&rightstr

    convertstr1=finalstr
    finalstr=""
    mailLocation=instr(convertstr1,"@")
    if mailLocation<>0 then
    Do while mailLocation<>mailLocationend
    mailLocation=instr(convertstr1,"@")
    mailLocationend=InStrRev(convertstr1,"@")
    mainmidmailstr=mid(convertstr1,mailLocation+1,1)
    midmailstr=mainmidmailstr
    do while (asc(midmailstr)>=45) and (asc(midmailstr)<=126)
    loopint1=loopint1+1
    midmailstr=mid(convertstr1,mailLocation-loopint1,1)
    loop
    firstSTR=mid(convertstr1,mailLocation-loopint1+1,loopint1-1)

    finalstr=finalstr&left(convertstr1,mailLocation-loopint1)

    midmailstr1=mainmidmailstr
    do while (asc(midmailstr1)>=45) and (asc(midmailstr1)<=126)
    loopint2=loopint2+1
    midmailstr1=mid(convertstr1,mailLocation+loopint2,1)
    if midmailstr1="" then exit do
    loop
    secondSTR=mid(convertstr1,mailLocation,loopint2)

    endmailstr=firstSTR&secondSTR
    mailstr="<a href=mailto:"&endmailstr&">"&endmailstr&"</a>"
    finalstr=finalstr&mailstr
    convertstr1=mid(convertstr1,maillocation+loopint2)
    loopint1=1
    loopint2=1
    Loop
    end if
    finalstr=finalstr&convertstr1
    URLconvert=finalstr
    end function
    %>

    posted @ 2005-07-07 14:31 一天一點(diǎn)愛戀 閱讀(136) | 評(píng)論 (0)編輯 收藏
     
    隨著計(jì)算機(jī)硬件的發(fā)展,許多朋友購買了新的計(jì)算機(jī),但是以前機(jī)器上的硬盤都舍不得丟棄,所以就拿它們作為一個(gè)備份硬盤使用。但是這也給大家?guī)砹艘粋€(gè)問題——安裝了雙硬盤之后,原先硬盤上的盤符與新硬盤上的盤符會(huì)出現(xiàn)交叉的情況,也就是說C盤是安裝了操作系統(tǒng)物理盤的一個(gè)分區(qū),但是D盤就變成另外一個(gè)物理盤的盤符了,這樣在使用的時(shí)候就有些麻煩。而且當(dāng)你將第二個(gè)硬盤拆卸下來刻盤或者是作為它用的時(shí)候,整個(gè)系統(tǒng)中的文件路徑就會(huì)出錯(cuò):安裝在D盤上的文件不見了,而安裝在E盤上的程序轉(zhuǎn)移到D盤上,除非你再將第二硬盤掛上,否則就只能手工對(duì)其進(jìn)行修正。筆者的計(jì)算機(jī)也剛升級(jí),而且也使用了雙硬盤,所以帶著這個(gè)問題仔細(xì)對(duì)系統(tǒng)進(jìn)行了一番研究,最后終于找出了解決之道,要是你也被這種難堪所困擾的話,不妨來看看如何解決雙硬盤交叉盤符的問題。

      一、系統(tǒng)升級(jí)

      第一個(gè)方法也是最簡(jiǎn)單的就是將你所使用的操作系統(tǒng)升級(jí)到Windows 2000。因?yàn)閃indows 2000采用的內(nèi)核與Windows 9X不同,而且對(duì)于多個(gè)硬盤的辨識(shí)能力與處理能力比Windows 9X要高出一籌,所以采用Windows 2000之后,安裝雙硬盤的時(shí)候系統(tǒng)會(huì)自動(dòng)把新硬盤的盤符添加到原先硬盤盤符后面。

      但是Windows 2000對(duì)于硬件的要求實(shí)在是太高了,大家千萬不要相信微軟信誓旦旦的“Pentium 133、32M內(nèi)存”的標(biāo)準(zhǔn)配置,難道你想在安裝的時(shí)候喝完一杯茶而安裝進(jìn)度還沒有增加百分之一?或者是在使用的時(shí)候移動(dòng)一下鼠標(biāo)帶來的就是“嘩嘩”的硬盤響聲?所以對(duì)于那些機(jī)器不夠棒的朋友,還是建議你采用后面說到的兩種方法。

      二、CMOS修改

      如果你使用的是Windows 98操作系統(tǒng),那么可以在CMOS中將第二硬盤的選項(xiàng)設(shè)置為“NONE”。比如掛接在第一根硬盤線的Slave端,就在CMOS中設(shè)置“IDE Primary Slave”為“NONE”,這樣在開機(jī)的時(shí)候系統(tǒng)會(huì)省去對(duì)第二硬盤的查找,進(jìn)入Windows 98之后,你會(huì)發(fā)現(xiàn)第二塊硬盤已經(jīng)被找到,而且交叉盤符的現(xiàn)象也不復(fù)存在。

      不過遺憾的是,這種方法只有在Windows 98操作系統(tǒng)下才能實(shí)現(xiàn)的,如果你使用Windows 95就不能享受這種便利的設(shè)置優(yōu)勢(shì)了。而且即使你采用的是Windows 98系統(tǒng),只要切換到DOS狀態(tài)的時(shí)候,第二硬盤就會(huì)自動(dòng)消失,要是你需要經(jīng)常在DOS下處理文件,那么這種方法還不是最佳的解決之道。
     
    三、分區(qū)大法

      事到如今,還有最后一招,保管你一勞永逸,絕無后顧之憂,這就是對(duì)第二塊重新分區(qū)。采用這種方法,無論在什么操作系統(tǒng)下,CMOS中如何設(shè)置,都可以解決盤符交叉的問題。想必這就是大家所最為關(guān)注的,所以在此對(duì)其的操作步驟介紹一下。

      1、將兩塊硬盤安裝好之后,開機(jī)的時(shí)候按下“F8”鍵并選擇相應(yīng)的選項(xiàng)進(jìn)入DOS狀態(tài)。

      2、鍵入“Fdisk”,然后會(huì)看見分區(qū)主界面,其中比以往大家所看見的多出了第五個(gè)選項(xiàng)“Change current fixed disk drive”,選擇此項(xiàng)之后按回車鍵繼續(xù)。

      3、接下來看見的是硬盤以及分區(qū)列表,這時(shí)大家選中第二個(gè)硬盤,然后按照先刪除擴(kuò)展分區(qū),再刪除主分區(qū)的步驟將這塊硬盤上的分區(qū)刪除。

      4、在對(duì)第二硬盤重新建立分區(qū)的時(shí)候要注意,一定不能選擇“Create Primary DOS Partition”在這塊硬盤上創(chuàng)建主分區(qū),而要選擇“Create Extended DOS Partition”把所有的空間都分配給擴(kuò)展分區(qū)使用。接著再按照自己的需要把這個(gè)硬盤分為多個(gè)分區(qū)。

      5、分區(qū)完畢之后,重新啟動(dòng)計(jì)算機(jī),等進(jìn)入Windows之后調(diào)用資源管理器會(huì)發(fā)現(xiàn)原先交叉的盤符現(xiàn)在已經(jīng)老老實(shí)實(shí)的按照規(guī)矩排列了,這時(shí)再對(duì)它們進(jìn)行格式化處理,這塊第二硬盤就可以像原先的那塊一樣正常使用了。

      但是這種方法也有一個(gè)缺點(diǎn),就是會(huì)完全破壞第二硬盤上的數(shù)據(jù),不過說起來也好解決,現(xiàn)在的硬盤都是又平又靚(又便宜又好)了,像主流的20G硬盤,只要八百多元,完全可以把你早期只有1G多的內(nèi)容全部復(fù)制過來了吧。

      好了,到此為止,解決雙硬盤盤符交叉的三種方法全部告訴大家了,至于你選用哪一種就看你自己的實(shí)際情況了。
    posted @ 2005-07-07 12:18 一天一點(diǎn)愛戀 閱讀(231) | 評(píng)論 (0)編輯 收藏
     

    首先了解什么是IIS連接數(shù)。
    IIS連接數(shù)指并發(fā)連接數(shù),什么意思呢?
    要分幾種情況:(以100M空間50人在線為例)
    A 用戶單點(diǎn)下載你的文件,結(jié)束后正常斷開,這些連接是按照瞬間計(jì)算的,就是說你50人的網(wǎng)站瞬間可以接受同時(shí)50個(gè)點(diǎn)下載
    B 用戶打開你的頁面,就算停留在頁面沒有對(duì)服務(wù)器發(fā)出任何請(qǐng)求,那么在用戶打開一面以后的15分鐘內(nèi)也都要算一個(gè)在線,就是說你50人的網(wǎng)站15分鐘內(nèi)可以接受不同用戶打開50個(gè)頁面
    C 上面B的情況用戶繼續(xù)打開同一個(gè)網(wǎng)站的其他頁面,那么在線人數(shù)按照用戶最后一次點(diǎn)擊(發(fā)出請(qǐng)求)以后的15分鐘計(jì)算,在這個(gè)15分鐘內(nèi)不管用戶怎么點(diǎn)擊(包括新窗口打開)都還是一人在線。
    D 當(dāng)你的頁面內(nèi)存在框架(Iframe),那么每多一個(gè)框架就要多一倍的在線!因?yàn)檫@相當(dāng)于用戶同一時(shí)間向服務(wù)器請(qǐng)求了多個(gè)頁面。
    E 當(dāng)用戶打開頁面然后正常關(guān)閉瀏覽器,用戶的在線人數(shù)也會(huì)馬上清除。

    然后了解什么是論壇在線人數(shù)。
    論壇在線只是計(jì)算一定時(shí)間內(nèi)的活動(dòng)用戶數(shù)。
    這里的時(shí)間用戶可以自己設(shè)定(刪除不活動(dòng)用戶時(shí)間),動(dòng)網(wǎng)論壇默認(rèn)為40分鐘的相對(duì)準(zhǔn)確值。

    根據(jù)上面的說明,顯然論壇在線和IIS連接數(shù)的概念不同
    為什么會(huì)出現(xiàn)IIS連接數(shù)和論壇在線不符合的情況?
    現(xiàn)具體分析如下:

    1:您使用了插件版論壇!
    現(xiàn)在的插件很**,不但占服務(wù)器資源,而且會(huì)使論壇運(yùn)行變慢( 沒有插件可以快一倍以上 ),同時(shí)很占在線人數(shù),有的插件調(diào)用很多框架,少則2、3個(gè),多則4、5個(gè)! 甚至有在線播放音樂,這樣一個(gè)人在線就相當(dāng)與很多人在線!

    2:您的網(wǎng)站是主頁+論壇的形式!
    這樣主頁和論壇要爭(zhēng)奪你的在線人數(shù)!

    3:你的論壇內(nèi)部有播放器!
    一個(gè)人在線,然后他在線播放音樂,就占二個(gè)人在線!

    4:你的論壇內(nèi)部存在框架形式的網(wǎng)頁!
    每一個(gè)框架,就多一倍的在線!

    5:你的論壇設(shè)置在線時(shí)間過小!
    動(dòng)網(wǎng)默認(rèn)為40分鐘, 這個(gè)默認(rèn)值下,一般我們20IIS的學(xué)習(xí)型主機(jī)可以達(dá)到50人左右 ,因?yàn)檎搲诰€只是計(jì)算一定時(shí)間內(nèi)的活動(dòng)用戶數(shù),當(dāng)您設(shè)定的時(shí)間較小的時(shí)候,看起來論壇在線的人數(shù)就自然少了,請(qǐng)把 刪除不活動(dòng)用戶時(shí)間 改為默認(rèn)的40分鐘就可以!

    6:你的空間存在多個(gè)論壇!
    有的客戶在一個(gè)空間里上傳多個(gè)論壇,如bbs bbs1 bbs2 等等 等等
    毫無疑問,這樣個(gè)論壇也是要爭(zhēng)奪再線人數(shù)的!

    7:你的論壇圖片等文件被人盜鏈!
    比如:你的論壇有張圖片文件,被粘貼(注意是粘貼不是上傳)到別的論壇!
    別的論壇的用戶在瀏覽該文件的時(shí)候也算一個(gè)在線人數(shù)!
    尤其是LOGO連接的時(shí)候注意,一定要對(duì)方把您的LOGO上傳到他的空間!

    8:你的空間上放有下載文件!
    如果用戶用網(wǎng)絡(luò)螞蟻類的軟件,每一個(gè)線程就表示一個(gè)在線,非常厲害
    9:最新發(fā)現(xiàn)如果網(wǎng)站首頁直接調(diào)用論壇的新帖子可能導(dǎo)致IIS超出標(biāo)準(zhǔn)建議網(wǎng)站使用靜態(tài)頁面

    posted @ 2005-07-07 12:16 一天一點(diǎn)愛戀 閱讀(153) | 評(píng)論 (0)編輯 收藏
     

    <%
    '------------------------------------------------------------------------
    '-------------------無垠網(wǎng)域:http://www.5inet.net/ ---------------------
    '-------------------作者:嘻哈呵嘿 ,webmaster@5inet.net -----------------
    '----------遠(yuǎn)程獲取內(nèi)容,并將內(nèi)容存在本地電腦上,包括任何文件!----------
    '---------------利用xmlhttp和adodb.stream,酷!絕對(duì)原創(chuàng)!-----------------
    'On Error Resume Next
    'Set the content type to the specific type that you are sending.
    'Response.ContentType = "IMAGE/JPEG"
    '-------------------------------定義輸出格式-----------------------------


    Path=request.querystring("p")
    sPath = Path
    if left(lcase(path),7) <> "http://" then
    '-------------如果前面沒有http就是本地文件,交給LocalFile處理------------
    LocalFile(path)
    else
    '--------------------否則為遠(yuǎn)程文件,交給RemoteFile處理------------------
    RemoteFile(Path)
    end if
    'Response.Write err.Description

    sub LocalFile(Path)
    '-------------------如果為本地文件則簡(jiǎn)單的跳轉(zhuǎn)到該頁面-------------------
    Response.Redirect Path
    End Sub

    Sub RemoteFile(sPath)
    '-------------------------處理遠(yuǎn)程文件函數(shù)------------------------------
    FileName = GetFileName(sPath)
    '-------------GetFileName為把地址轉(zhuǎn)換為合格的文件名過程-------------
    FileName = Server.MapPath("/UploadFile/Cache/" & FileName)
    Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    'Response.Write fileName
    if objFso.FileExists(FileName) Then
    '--------------檢查文件是否是已經(jīng)訪問過,如是,則簡(jiǎn)單跳轉(zhuǎn)------------
    Response.Redirect "/uploadfile/cache/" & GetFileName(path)
    Else
    '----------------否則的話就先用GetBody函數(shù)讀取----------------------
    'Response.Write Path
    t = GetBody(Path)
    '-----------------用二進(jìn)制方法寫到瀏覽器上--------------------------
    Response.BinaryWrite t
    Response.Flush
    '-----------------輸出緩沖------------------------------------------
    SaveFile t,GetFileName(path)
    '------------------將文件內(nèi)容緩存到本地路徑,以待下次訪問-----------
    End if
    Set objFso = Nothing
    End Sub

    Function GetBody(url)
    '-----------------------本函數(shù)為遠(yuǎn)程獲取內(nèi)容的函數(shù)---------------------
    'on error resume next
    'Response.Write url
    Set Retrieval = CreateObject("Microsoft.XMLHTTP")
    '----------------------建立XMLHTTP對(duì)象-----------------------------
    With Retrieval
    .Open "Get", url, False, "", ""
    '------------------用Get,異步的方法發(fā)送-----------------------
    .Send
    'GetBody = .ResponseText
    GetBody = .ResponseBody
    '------------------函數(shù)返回獲取的內(nèi)容--------------------------
    End With
    Set Retrieval = Nothing
    'response.Write err.Description
    End Function

    Function GetFileName(str)
    '-------------------------本函數(shù)為合格化的文件名函數(shù)-------------------
    str = Replace(lcase(str),"http://","")
    str = Replace(lcase(str),"http://","/")
    str = Replace(str,"/","")
    str = replace(str,vbcrlf,"")
    GetFileName = str
    End Function

    sub SaveFile(str,fName)
    '-------------------------本函數(shù)為將流內(nèi)容存盤的函數(shù)-------------------
    'on error resume next
    Set objStream = Server.CreateObject("ADODB.Stream")
    '--------------建立ADODB.Stream對(duì)象,必須要ADO 2.5以上版本---------
    objStream.Type = adTypeBinary
    '-------------以二進(jìn)制模式打開-------------------------------------
    objStream.Open
    objstream.write str
    '--------------------將字符串內(nèi)容寫入緩沖--------------------------
    'response.Write fname
    objstream.SaveToFile "c:\inetpub\myweb\uploadfile\cache\" & fName,adSaveCreateOverWrite
    '--------------------將緩沖的內(nèi)容寫入文件--------------------------
    'response.BinaryWrite objstream.Read
    objstream.Close()
    set objstream = nothing
    '-----------------------關(guān)閉對(duì)象,釋放資源-------------------------
    'response.Write err.Description
    End sub
    %>

    posted @ 2005-07-07 11:53 一天一點(diǎn)愛戀 閱讀(164) | 評(píng)論 (0)編輯 收藏
    僅列出標(biāo)題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
     
    Copyright © 一天一點(diǎn)愛戀 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 18禁亚洲深夜福利人口| 中文字幕的电影免费网站| 国产在线19禁免费观看国产| 美女免费视频一区二区| 亚洲AV无码第一区二区三区| 国语成本人片免费av无码| 免费夜色污私人影院网站| 亚洲国产精品第一区二区| 日韩在线天堂免费观看 | 人妻巨大乳hd免费看| 久久精品国产亚洲AV麻豆~| 搡女人免费视频大全| 中国黄色免费网站| 亚洲综合成人婷婷五月网址| 国产亚洲欧洲Aⅴ综合一区| 精品久久久久国产免费| CAOPORN国产精品免费视频| 亚洲首页国产精品丝袜| 亚洲中文字幕无码一久久区| 女人张开腿给人桶免费视频| 免费无码av片在线观看| 国产成人精品亚洲一区| 亚洲第一二三四区| 亚洲人成精品久久久久| 国产成人在线免费观看| 无码国产精品一区二区免费| 搡女人免费免费视频观看| 亚洲成a人片在线不卡一二三区| 亚洲国产人成在线观看69网站| jjzz亚洲亚洲女人| 日本XXX黄区免费看| 国内精品久久久久影院免费| 免费人人潮人人爽一区二区| 亚洲一区二区三区丝袜| 亚洲欧洲日韩国产| 久久久久久亚洲精品| 亚洲无码视频在线| 亚洲?v女人的天堂在线观看| 我要看免费的毛片| 国产卡一卡二卡三免费入口| 久久永久免费人妻精品|