国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

ASP實(shí)現(xiàn)文件上傳的方法

瀏覽:64日期:2022-06-05 16:00:32

一.基于ASP的文件上傳實(shí)現(xiàn)原理分析
基本原理是:采用ADO Stream對(duì)象的BinaryRead方法將FORM中的所有數(shù)據(jù)讀出,從中截取出所需的文件數(shù)據(jù),以二進(jìn)制文件方式存盤(pán)。
下面是上傳文件頁(yè)面的一個(gè)例子(upload.htm):

<html>
<body>
<form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp">
<input type="file" name="FileName">
<INPUT TYPE="Submit" VALUE="Upload"></TD>
</form>
</body>
</html>

程序中使用了文件對(duì)象,這樣在Upload.asp中采用BinaryRead方法讀來(lái)的原始數(shù)據(jù)就不僅僅是選擇的文件本身的數(shù)據(jù),還包含該文件在用戶(hù)硬盤(pán)上的路徑、類(lèi)型、提交頁(yè)面的表單域名等相關(guān)信息的描述,這樣我們就需從中提取出文件的具體內(nèi)容。根據(jù)分析,數(shù)據(jù)的頭部信息與數(shù)據(jù)的分界線是兩對(duì)回車(chē)換行符,尾部也有分隔信息,我們可以采用類(lèi)似以下的方法獲取文件數(shù)據(jù)。

Dim FormData.FormSize,DataStart,CLStr,DivStr
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
CLStr=ChrB(13)&ChrB(10)
DataStart=InStrB(FormData.CLStr&CLStr)+4
"4是兩對(duì)回車(chē)換行符的長(zhǎng)度
DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
FormData=MidB(FormData,DataStart,DataSize)
FormData就是文件的內(nèi)容了。

中間根據(jù)需要,可進(jìn)行相應(yīng)的處理。最后的工作就是將文件保存了。保存的方法可以有兩種:一種是利用VB或VC之類(lèi)程序中的二進(jìn)制文件操作方法,在工程中加入適當(dāng)?shù)念?lèi)型庫(kù),最終編譯成DLL文件,使用時(shí)再將該DLL文件注冊(cè)就可以了。文件存貯程序如下:

Public Function SaveFile(Pathname As String) As String
     Dim objContext As ObjectContext
     Dim objRequest As Request
  Set objContext=GetObjectContext()
     Set objRequest=objContext("Request")
     "以下的一段代碼是進(jìn)行文件存貯的有關(guān)操作
  Dim FormData() As Byte,CLStr,DivStr
     Dim DataStart As Long,DataSize As Long
     DataSize=objRequest.TotalBytes
     Redim FormData(DataSize-1)
     FormData=objRequest.BinaryRead(DataSize)
     CLStr=ChrB(13) & ChrB(10)
     DataStart=InStrB(FormData,CLStr & CLStr)+4
     DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
     DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
     FormData=MidB(FormData,DataStart,DataSize)
     "創(chuàng)建一個(gè)二進(jìn)制文件并將FormData寫(xiě)入其中
     Open Pathname For Binary As 1
     Put #1,,FormData
     Close #1
     SaveFile="OK!"
   End Function

第二種方法是利用ADO STREAM中提供的二進(jìn)制文件操作方法來(lái)完成,保存文件的語(yǔ)句是: StreamOBJ.SaveToFile (fileName,2)。在 這種操作中,我們可以將有關(guān)的操作存放在一個(gè)類(lèi)文件中,在應(yīng)用時(shí),直接將該類(lèi)文件包含在ASP程序中就可以了。具體處理方法,請(qǐng)參閱有關(guān)介紹。
二.文件上傳實(shí)現(xiàn)方法實(shí)例
實(shí)現(xiàn)文件上傳可使用組件或無(wú)組件方式。對(duì)于組件類(lèi),比如說(shuō)microsoft posting acceptor(簡(jiǎn)稱(chēng)mpa),就是微軟公司發(fā)布的一個(gè)免費(fèi)服務(wù)器組件,這類(lèi)組件的安裝也比較方便。對(duì)于微軟的mpa,運(yùn)行它的安裝文件就可以了。而一般的dll組件形式的,我們則需要進(jìn)行注冊(cè)。例如,要使用aspcnUP.dll,只要在Window 2000上執(zhí)行regsvr32 [path\]aspcnUP.dll,系統(tǒng)出現(xiàn)注冊(cè)成功的信息提示就可以使用該組件了;對(duì)于無(wú)組件類(lèi),在使用時(shí),只要在處理程序中包含以下的語(yǔ)句就可以了:

<!--#include FILE="upload.inc"-->
set upload=new upload_5xSoft "建立上傳對(duì)象

有關(guān)的屬性與操作方法,請(qǐng)參閱該組件的使用手冊(cè)。
下面是以aspcnUP.dll組件為例,上傳部分類(lèi)型文件的源代碼(upload.asp):

<% @ language="vbscript"
  Set fileUP=Server.CreateObject("aspcn.Upload")
  fileUP.Maxsize=200000
  fileUP.Path="d:\upfile"
  fileUP.Upload
  For i=0 to fileUP.Count
   fieldname=fileUP.FieldName(i)
   If fileUP.FileType(fieldname)="zip" Or ileUP.FileType(fieldname)="rar" Then
    fileUP.Save fieldname
   End If
  Next
  Set fileUP=Nothing
%>

瀏覽器/服務(wù)器應(yīng)用模式還在快速地發(fā)展著,在微軟新推出的ASP.NET中,已經(jīng)內(nèi)置了文件上傳的功能,使用非常簡(jiǎn)單方便。作為一種全新的技術(shù),ASP.NET并不只是ASP的簡(jiǎn)單升級(jí),它是一個(gè)用于Web開(kāi)發(fā)的全新框架,其中包含了許多新的特性。ASP.NET提供了更易于編寫(xiě)、結(jié)構(gòu)更清晰的代碼,利用這些代碼我們將會(huì)更容易地進(jìn)行再利用和共享,從而開(kāi)發(fā)出更多更實(shí)用的程序來(lái)。

標(biāo)簽: ASP
主站蜘蛛池模板: 韩国一级理黄论片 | 久久免费视频8 | 黄黄的网站在线观看 | 日韩专区亚洲综合久久 | 日本一极毛片兔费看 | 在线播放国产视频 | 美女黄网站色一级毛片 | 精品国产免费观看久久久 | 亚洲欧洲日产国码二区首页 | 91亚洲精品久久91综合 | 欧美刺激午夜性久久久久久久 | 亚洲高清成人欧美动作片 | 国产浮力第一页草草影院 | 免费人成年短视频在线观看免费网站 | u影一族亚洲精品欧美激情 va欧美 | 久久久久久亚洲精品影院 | 欧美日本一区二区 | 久久久久国产精品免费免费 | 久草在线新视频 | 东京一区二区三区高清视频 | 亚洲不卡在线 | 一级毛片在线免费视频 | 国产成人精品aaaa视频一区 | 亚洲国产成人在线观看 | 香蕉视频亚洲一级 | 成人18免费 | 中国国语毛片免费观看视频 | 日韩在线视频免费 | 亚洲人妖女同在线播放 | 国产日产精品_国产精品毛片 | 欧美毛片性视频区 | 亚洲国产日韩欧美综合久久 | 免费观看呢日本天堂视频 | 2022国内精品免费福利视频 | 狠狠综合久久 | 一级黄色录像片 | 精品国产自 | 久久久久久久国产精品影院 | 国产亚洲一级精品久久 | 亚洲一区二区三区免费看 | 乱子伦一级在线现看 |