明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

XML技術上傳文件1

[摘要]XML技術上傳文件 類型: XML/Biztalk概述  本文講解了一個使用XML技術上傳文件的例子,使用該方法沒有傳統(tǒng)方法中的種種限制。 這個例子講述了如何使用MSXML3.0和ADO Stream對象來實現(xiàn)這種新的上傳方法。好處有很多,比如,不需要專用的上傳組件。引言為了在HTML網(wǎng)頁中獲得上...
XML技術上傳文件
類型: XML/Biztalk

概述

  本文講解了一個使用XML技術上傳文件的例子,使用該方法沒有傳統(tǒng)方法中的種種限制。 這個例子講述了如何使用MSXML3.0和ADO Stream對象來實現(xiàn)這種新的上傳方法。好處有很多,比如,不需要專用的上傳組件。


引言

為了在HTML網(wǎng)頁中獲得上傳功能,在客戶端我們可以使用如下格式的FORM:

< FORM NAME="myForm" ACTION="TargetURL.asp" ENCTYPE="multipart/form-data"METHOD="post" >
< INPUT TYPE="file" NAME="myFile" >
< INPUT TYPE="submit" VALUE="Upload File" >
< /FORM >


  這種方案在客戶端和服務器端的使用都有很多限制。首先,我們必須使用POST方法,因為GET方法無法處理這樣的表單數(shù)據(jù)。并且,沒有什么方法可以在不使用表單的情況下引發(fā)一個POST動作。把數(shù)據(jù)發(fā)送給表單處理程序后,瀏覽器將會把處理程序作為新頁面加載,然后使用者會看到一個不討人喜歡的頁面轉換過程。

  ENCTYPE屬性為表單定義了MIME編碼方式,上傳文件的表單的ENCTYPE屬性必須使用“multipart/form-data”。把這個屬性設置為“multipart/form-data”就創(chuàng)建了一個與傳統(tǒng)結構不同的POST緩沖區(qū)(復合結構),ASP的Request對象無法訪問這樣的表單內容。所以,我們可以使用Request.binaryRead方法來訪問這些數(shù)據(jù),但是無法使用腳本語言來完成這一切。Request.binaryRead方法返回一個VTarray型數(shù)據(jù)(只包含無符號一字節(jié)字符的Variant型數(shù)組)。但是腳本語言只能處理Variant型數(shù)據(jù)。為了解決這個問題,只能使用專用的ASP上傳組件,或者ISAPI擴展程序,比如CPSHOST.DLL。這是設計上的限制。

新的上傳方案

需要按照如下步驟操作。
客戶端:

使用MSXML 3.0創(chuàng)建一個XML文檔
創(chuàng)建一個針對二進制內容的XML節(jié)點
使用ADO Stream object將上傳的文件數(shù)據(jù)放入該節(jié)點
使用XMLHTTP對象把這個XML文檔發(fā)送給Web服務器




相關文章