国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP中巧用Response存取文件

2024-05-04 11:07:13
字體:
來源:轉載
供稿:網友

我在用ASP為某單位制作網頁時遇到這樣一個問題,單位以前的MIS系統中將一些Word文件以字節流的形式保存在數據庫中,現在用戶要求我用ASP將這些Word文件數據從數據庫中取出并在網頁中顯示出來。開始我自然地想到在服務器上創建臨時文件、然后在網頁中增加一個指向這個臨時文件的鏈接,但這個方法將大大增加服務器的負擔不說,而且在服務上如何保證特定客戶端所使用的臨時文件不被其它客戶端使用的文件覆蓋,如何在文件傳送給用戶后將文件刪除,這些問題在實際都難很好解決。那么有沒有更好的辦法呢?

為此我仔細查看了一下ASP的參考書,發現Response對象有一個叫contenttype的屬性,它定義服務器發送給客戶端內容的MIME類型。MIME全稱Multipurpose Internet Mail Extensions,即多功能Internet郵件擴展。我們知道,在網頁編程中我們有時將超鏈接指向一個Word或Excel文件,當用戶點擊這個鏈接時瀏覽器會自動調用對應方法將這個文件打開。之所以能做到這點就是因為用戶機器上安裝office后會在瀏覽器中注冊對應的MIME資源類型。比如說word文件的MIME類型是Application/msword(前者是MIME類型,后者是MIME子類),Excel文件的MIME資源類型是Application/msexcel。事實上,凡是瀏覽器能處理的所有資源都有對應的MIME資源類型,比如說html文件的MIME類型是Text/html,JPG文件的MIME類型是Image/JPG。在與服務器的交互中,瀏覽器就是根據所接受數據的MIME類型來判斷要進行什么樣的處理,對html、JPG等文件瀏覽器直接將其打開,對Word、Excel等瀏覽器自身不能打開的文件則調用相應方法打開。對沒有標記MIME類型的文件,瀏覽器則根據其擴展名和文件內容猜測其類型。如果瀏覽器無法猜出,則將它作為application/octet-stream。要了解各種文件的MIME類型,請在win98 我的電腦->查看->文件夾選項->文件類型 中查看。

于是我靈機一動,想到在ASP中可以先將WORD數據以字節流方式取出,接著將其conntenttype屬性標記為Application/msword,再將它發送給客戶機,客戶機收到這個資源后,根據其MIME類型,會自動調用客戶機上的Word(當然,前提是客戶機上裝了Word,否則會將其作為一個不能識別的資源,提示用戶保存起來,而不是打開它)將它打開。經試驗效果很好,方法簡單且速度很快,而且在IE5中瀏覽器使用內嵌方式(類似于OLE方式)打開,效果更佳。以下是程序內容。

假設表名tab_word,表中有兩個字段,一個是整型,名id,用作Word數據的唯一標識,另一個Blob型,名worddata,里面存放Word數據。現在要在頁面上顯示id等于1的Word文件內容, ASP程序如下:

< %
' conn - 已創建的數據庫連接
' rs -- 結果集
rs = conn.execute("select
worddata from tab_word where id = 1")
response.contenttype = "Application/msword"
response.writebinary(rs("worddata"))
'注意將結果集中的數據直接用writebinary發送出去,不要用變量
'接收這個數據,否則系統會報錯
% >

用類似的方法,還可以處理Excel、Bmp等許多類型的數據。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪洞县| 龙游县| 夏邑县| 九江市| 张家港市| 漳平市| 广安市| 巴青县| 林周县| 高州市| 沁阳市| 板桥市| 钦州市| 四子王旗| 从江县| 麟游县| 信宜市| 呼玛县| 张家川| 嫩江县| 武冈市| 潼关县| 都兰县| 辽宁省| 穆棱市| 天长市| 昭通市| 荔波县| 衡山县| 新河县| 吴旗县| 南昌县| 太白县| 兴城市| 昌宁县| 滦平县| 梅河口市| 莱阳市| 汕头市| 孟津县| 仙桃市|