ASP中巧用Response屬性 -- contenttype_ASP教程
推薦:怎樣用ASP程序判斷一個(gè)盤上是否有文件以下為引用的內(nèi)容: <% dim objfolder dim objfso dim j set fso=server.CreateObject("scripting.filesystemobject&q
我在用ASP為某單位制作網(wǎng)頁時(shí)遇到這樣一個(gè)問題,單位以前的MIS系統(tǒng)中將一些Word文件以字節(jié)流的形式保存在數(shù)據(jù)庫中,現(xiàn)在用戶要求我用ASP將這些Word文件數(shù)據(jù)從數(shù)據(jù)庫中取出并在網(wǎng)頁中顯示出來。開始我自然地想到在服務(wù)器上創(chuàng)建臨時(shí)文件、然后在網(wǎng)頁中增加一個(gè)指向這個(gè)臨時(shí)文件的鏈接,但這個(gè)方法將大大增加服務(wù)器的負(fù)擔(dān)不說,而且在服務(wù)上如何保證特定客戶端所使用的臨時(shí)文件不被其它客戶端使用的文件覆蓋,如何在文件傳送給用戶后將文件刪除,這些問題在實(shí)際都難很好解決。那么有沒有更好的辦法呢?
---- 為此我仔細(xì)查看了一下ASP的參考書,發(fā)現(xiàn)Response對(duì)象有一個(gè)叫contenttype的屬性,它定義服務(wù)器發(fā)送給客戶端內(nèi)容的MIME類型。MIME全稱Multipurpose Internet Mail Extensions,即多功能Internet郵件擴(kuò)展。我們知道,在網(wǎng)頁編程中我們有時(shí)將超鏈接指向一個(gè)Word或Excel文件,當(dāng)用戶點(diǎn)擊這個(gè)鏈接時(shí)瀏覽器會(huì)自動(dòng)調(diào)用對(duì)應(yīng)方法將這個(gè)文件打開。之所以能做到這點(diǎn)就是因?yàn)橛脩魴C(jī)器上安裝office后會(huì)在瀏覽器中注冊(cè)對(duì)應(yīng)的MIME資源類型。比如說word文件的MIME類型是Application/msword(前者是MIME類型,后者是MIME子類),Excel文件的MIME資源類型是Application/msexcel。事實(shí)上,凡是瀏覽器能處理的所有資源都有對(duì)應(yīng)的MIME資源類型,比如說html文件的MIME類型是Text/html,JPG文件的MIME類型是Image/JPG。在與服務(wù)器的交互中,瀏覽器就是根據(jù)所接受數(shù)據(jù)的MIME類型來判斷要進(jìn)行什么樣的處理,對(duì)html、JPG等文件瀏覽器直接將其打開,對(duì)Word、Excel等瀏覽器自身不能打開的文件則調(diào)用相應(yīng)方法打開。對(duì)沒有標(biāo)記MIME類型的文件,瀏覽器則根據(jù)其擴(kuò)展名和文件內(nèi)容猜測其類型。如果瀏覽器無法猜出,則將它作為application/octet-stream。要了解各種文件的MIME類型,請(qǐng)?jiān)趙in98 我的電腦->查看->文件夾選項(xiàng)->文件類型 中查看。
---- 于是我靈機(jī)一動(dòng),想到在ASP中可以先將WORD數(shù)據(jù)以字節(jié)流方式取出,接著將其conntenttype屬性標(biāo)記為Application/msword,再將它發(fā)送給客戶機(jī),客戶機(jī)收到這個(gè)資源后,根據(jù)其MIME類型,會(huì)自動(dòng)調(diào)用客戶機(jī)上的Word(當(dāng)然,前提是客戶機(jī)上裝了Word,否則會(huì)將其作為一個(gè)不能識(shí)別的資源,提示用戶保存起來,而不是打開它)將它打開。經(jīng)試驗(yàn)效果很好,方法簡單且速度很快,而且在IE 5中瀏覽器使用內(nèi)嵌方式(類似于OLE方式)打開,效果更佳。以下是程序內(nèi)容。
---- 假設(shè)表名tab_word,表中有兩個(gè)字段,一個(gè)是整型,名id,用作Word數(shù)據(jù)的唯一標(biāo)識(shí),另一個(gè)Blob型,名worddata,里面存放Word數(shù)據(jù)�,F(xiàn)在要在頁面上顯示id等于1的Word文件內(nèi)容, ASP程序如下:
| <% ’ conn - 已創(chuàng)建的數(shù)據(jù)庫連接 ’ rs -- 結(jié)果集 rs = conn.execute("select worddata from tab_word where id = 1") response.contenttype = "Application/msword" response.writebinary(rs("worddata")) ’注意將結(jié)果集中的數(shù)據(jù)直接用writebinary發(fā)送出去,不要用變量 ’接收這個(gè)數(shù)據(jù),否則系統(tǒng)會(huì)報(bào)錯(cuò) % > |
分享:故障解決:解決ASP腳本運(yùn)行超時(shí)的方法最近在學(xué)習(xí)服務(wù)器知識(shí)。有時(shí)候遇到asp腳本運(yùn)行超時(shí)的錯(cuò)誤,真是麻煩。找了相關(guān)資料,其中有一些解決方法。 IIS默認(rèn)的腳本超時(shí)時(shí)間是90秒 這樣的話如果你是上傳軟件或者傳送數(shù)據(jù)大于90秒的時(shí)
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無組件分頁實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說明:
ASP教程-ASP中巧用Response屬性 -- contenttype
。