上述代碼創(chuàng)建了一個ADODB.Stream對象,該對象用于處理二進制數(shù)據(jù)流。我們首先將RequestBody中的數(shù)據(jù)寫入到Stream對象中,然后將其類型設(shè)置為文本,再將字符集設(shè)置為utf-8。接著,我們通過ReadText方法將數(shù)據(jù)讀取為文本格式并打印出來。需要注意的是,在將數(shù)據(jù)輸出到頁面之前,我們使用了Server.HtmlEncode方法對數(shù)據(jù)進行了轉(zhuǎn)義,以防止其中包含潛在的惡意代碼。 除了獲取表單數(shù)據(jù),還可以根據(jù)需求獲取其他類型的數(shù)據(jù)。比如,我們的網(wǎng)站上提供了一個上傳文件的功能,用戶可以選擇一個文件并上傳到服務(wù)器。在這種情況下,我們同樣可以使用Request.Body來獲取請求主體中的數(shù)據(jù)。 下面的代碼演示了如何通過Request.Body獲取上傳文件的相關(guān)信息:<% Dim objStream Set objStream=Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type=1 'adTypeBinary objStream.Write Request.BinaryRead(Request.TotalBytes) objStream.Position=0 objStream.Type=2 'adTypeText objStream.Charset="utf-8" Dim postData postData=objStream.ReadText Response.Write(Server.HtmlEncode(postData)) objStream.Close Set objStream=Nothing %>
在上述代碼中,我們使用了和之前相同的步驟將RequestBody中的數(shù)據(jù)寫入到Stream對象中。然后,我們將請求中的FormData中的上傳文件數(shù)據(jù)讀取出來,并將其保存到指定的文件中。 總結(jié)起來,ASP中的Request.Body屬性在處理HTTP請求中的主體數(shù)據(jù)時非常有用。通過使用這個屬性,我們能夠輕松地獲取到請求中傳遞的各種數(shù)據(jù),比如表單數(shù)據(jù)或者上傳的文件。在實際應(yīng)用中,我們要根據(jù)不同的情況進行相應(yīng)的處理和解析,以確保我們能夠正確地獲取到所需的數(shù)據(jù)。通過合理利用Request.Body屬性,我們可以更好地滿足用戶的需求,提高網(wǎng)站的功能和用戶體驗。 該文章共計 490 個字<% Dim objStream Set objStream=Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type=1 'adTypeBinary objStream.Write Request.BinaryRead(Request.TotalBytes) objStream.Position=0 Dim fileData fileData=objStream.Read Dim fileName fileName="C:\uploads\" & Request.Form("filename") Dim objTargetStream Set objTargetStream=Server.CreateObject("ADODB.Stream") objTargetStream.Open objTargetStream.Type=1 'adTypeBinary objTargetStream.Write fileData objTargetStream.SaveToFile fileName objTargetStream.Close Set objTargetStream=Nothing objStream.Close Set objStream=Nothing %>