主頁 > 知識庫 > ASP實現(xiàn)文件上傳的方法

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

熱門標簽:微信地圖標注有什么用 重慶外呼電銷系統(tǒng)費用 電銷機器人一個多少錢 北京大興區(qū)地圖標注 濰坊呼叫中心外呼系統(tǒng)供應(yīng)商 不封卡外呼系統(tǒng)一般多少錢 鄭州語音電銷機器人官網(wǎng) 地圖標注中心多少錢注冊 地圖標注不完整被罰款

一.基于ASP的文件上傳實現(xiàn)原理分析
基本原理是:采用ADO Stream對象的BinaryRead方法將FORM中的所有數(shù)據(jù)讀出,從中截取出所需的文件數(shù)據(jù),以二進制文件方式存盤。
下面是上傳文件頁面的一個例子(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>

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

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

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

Public Function SaveFile(Pathname As String) As String
     Dim objContext As ObjectContext
     Dim objRequest As Request
  Set objContext=GetObjectContext()
     Set objRequest=objContext("Request")
     '以下的一段代碼是進行文件存貯的有關(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)建一個二進制文件并將FormData寫入其中
     Open Pathname For Binary As 1
     Put #1,,FormData
     Close #1
     SaveFile="OK!"
   End Function

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

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

有關(guān)的屬性與操作方法,請參閱該組件的使用手冊。
下面是以aspcnUP.dll組件為例,上傳部分類型文件的源代碼(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)置了文件上傳的功能,使用非常簡單方便。作為一種全新的技術(shù),ASP.NET并不只是ASP的簡單升級,它是一個用于Web開發(fā)的全新框架,其中包含了許多新的特性。ASP.NET提供了更易于編寫、結(jié)構(gòu)更清晰的代碼,利用這些代碼我們將會更容易地進行再利用和共享,從而開發(fā)出更多更實用的程序來。

您可能感興趣的文章:
  • Asp.Net超大文件上傳問題解決
  • Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
  • asp.net 文件上傳實例匯總
  • asp.net文件上傳示例分享
  • ASP.NET實現(xiàn)的簡單易用文件上傳類
  • ASP.NET對大文件上傳的解決方案
  • asp.net批量多選文件上傳解決方案
  • ASP.NET設(shè)計FTP文件上傳的解決方案
  • asp將本地的文件上傳到服務(wù)器
  • asp.net文件上傳帶進度條實現(xiàn)案例(多種風(fēng)格)
  • asp.net文件上傳解決方案(圖片上傳、單文件上傳、多文件上傳、檢查文件類型)
  • ASP.NET MVC5實現(xiàn)文件上傳與地址變化處理(5)

標簽:揭陽 攀枝花 佛山 唐山 海南 汕頭 撫州 鶴崗

巨人網(wǎng)絡(luò)通訊聲明:本文標題《ASP實現(xiàn)文件上傳的方法》,本文關(guān)鍵詞  ASP,實現(xiàn),文件,上傳,的,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP實現(xiàn)文件上傳的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP實現(xiàn)文件上傳的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章