佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > ASP.NET設(shè)計(jì)FTP文件上傳的解決方案

ASP.NET設(shè)計(jì)FTP文件上傳的解決方案

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 硅谷的囚徒呼叫中心 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 百度競(jìng)價(jià)排名 集中運(yùn)營(yíng)管理辦法 服務(wù)器配置 阿里云 地方門戶網(wǎng)站

如果要用ASP來(lái)作一個(gè)FTP文件上傳的頁(yè)面,我想很多人立刻就會(huì)想到要用第三方開發(fā)的組件,利用第三方的組件,雖然開發(fā)起來(lái)相對(duì)比較容易。但一般來(lái)說(shuō),免費(fèi)下載的第三方的組件都有某些方面的功能限制,若要購(gòu)買正版的第三方組件,對(duì)于國(guó)內(nèi)的用戶,花銷也是一個(gè)不小的數(shù)字,就是能夠承擔(dān)的起,煩雜的手續(xù)也使很多人望而卻步。雖然微軟公司在本身的視窗系統(tǒng)里面也提供了一個(gè)可以用來(lái)上傳文件的組件--Posting Acceptor。但用過(guò)這個(gè)組件的朋友們都有一種普遍的感覺(jué),就是實(shí)在不好用。
現(xiàn)在好了,自從微軟公司推出了.Net FrameWork以后,作為.Net FrameWork中重要組成部分的ASP.NET已經(jīng)在內(nèi)部建立了文件上傳的功能,并且這種功能既是免費(fèi)的,用起來(lái)又相當(dāng)好用。下面我們就通過(guò)一個(gè)例子來(lái)介紹如何利用ASP.NET的這種功能完成文件上傳。

一. 軟件編寫及的運(yùn)行環(huán)境
微軟公司視窗2000專業(yè)版和.Net FrameWork SDK BETA2(微軟公司開發(fā),用以.Net開發(fā)的軟件開發(fā)包測(cè)試2版本) 。 如果運(yùn)行的服務(wù)器的硬盤分區(qū)是NTSF分區(qū),就請(qǐng)把服務(wù)器上的所有硬盤的存取屬性設(shè)定為Everyone , 這樣可確保上傳文件可以正確寫入服務(wù)器的硬盤中。

二. 軟件的基本功能
本軟件主要完成上傳本地的文件到服務(wù)器的指定目錄的功能。就是在軟件的運(yùn)行界面中,在用戶選擇完要上傳的文件名稱,填入要上傳到服務(wù)器的目錄名稱后,如果沒(méi)有填入上傳到服務(wù)器目錄,則使用缺省目錄" C:\ " ,如果填入的目錄在服務(wù)器上不存在,就建立此目錄。在按" 開始上傳 "按鈕后,軟件就把選擇的文件上傳到指定的目錄中,然后返回上傳文件的信息,即文件的名稱,文件的大小及文件的類型。軟件具體的操作界面及運(yùn)行結(jié)果界面如下圖所示:

 

圖1:軟件的操作界面

 

圖2:軟件的運(yùn)行結(jié)果界面

三. 軟件設(shè)計(jì)中的重要步驟及具體解決辦法
(一).擇本地要上傳到服務(wù)器的文件
首先要感謝ASP.NET的強(qiáng)大功能,他提供的HTML控制元件,使得我們很容易的通過(guò)一個(gè)對(duì)話框來(lái)選擇要上傳的文件。當(dāng)然你的瀏覽器也必須是IE 3.02 或者Netscape 3.0版本或者比這二者版本高的瀏覽器。通過(guò)下列語(yǔ)句就可以完成選擇本地一個(gè)文件的工作:
<input id = " loFile " type = " file " runat = " server " >
(二).為了成功完成文件上傳工作,在Form中的編碼必須用" multipart/form-data " , 而不用From的缺省編碼" application/x-www-form-urlencoded "。具體代碼如下:
<form method = " post " enctype =" multipart/form-data " runat = " server ">
</form >
(三).獲得上傳的文件名稱及對(duì)磁盤的若干操作
為了獲得上傳的文件名稱,必須要引入一個(gè)名稱空間( NameSapce ) --System.IO。此名稱空間里面定義了許多關(guān)于文件及磁盤操作的類,在本軟件中就是通過(guò)這些類的某些方法和屬性來(lái)完成軟件中的一些功能。
(1). 獲得上傳文件的名稱
使用Path類中的GetFileName方法,具體如下:
lstrFileName = loFile.PostedFile.FileName
  ' 注: loFile.PostedFile.FileName 返回的是通過(guò)文件對(duì)話框選擇的文件名,
  這之中包含了文件的目錄信息
lstrFileName = Path.GetFileName ( lstrFileName )
  ' 去掉目錄信息,返回文件名稱
(2). 判斷上傳目錄是否存在,不存在就建立
建立目錄要使用到Directory類中的 CreateDirectory 方法,判斷目錄是否存在要用到 Directory 類中的Exists方法。具體如下:
If ( not Directory.Exists( lstrFileFolder ) ) Then
 Directory.CreateDirectory ( lstrFileFolder )
End If
 ' 注:lstrFileFolder是用戶填入的目錄名稱,或者是缺省的目錄名稱
(四).上傳選定文件到服務(wù)器上
在前面工作都已經(jīng)完成以后,就可以上傳文件了,上傳文件相對(duì)比較簡(jiǎn)單,就用下面2行語(yǔ)句就可以完成上傳工作。
lstrFileNamePath = lstrFileFolder lstrFileName
 ' 得到上傳目錄及文件名稱
loFile.PostedFile.SaveAs ( lstrFileNamePath )
 '上傳文件到服務(wù)器
(五).獲得并顯示上傳文件的屬性
FileName.Text = lstrFileName
 ' 獲得文件名稱
FileType.Text = loFile.PostedFile.ContentType
 '獲得文件類型
FileLength.Text = cStr ( loFile.PostedFile.ContentLength )
 '獲得文件長(zhǎng)度
FileUploadForm.visible = false
AnswerMsg.visible = true
 '顯示上傳文件屬性
以上就是本軟件在編寫時(shí)的一些比較重要的地方。

四. 程序源代碼

<% @ Import Namespace=" System.IO " %>
<html >
<BODY >
<SCRIPT LANGUAGE = "VB" RUNAT = "SERVER" > 
 Sub UploadFile_Clicked ( Sender as Object, e as EventArgs ) 
  Dim lstrFileName as string 
  Dim lstrFileNamePath as string 
  Dim lstrFileFolder as string 
  ' 如果上傳目錄為空,就使用" c:\ "作為缺省上傳目錄 
  ' 獲得上傳到服務(wù)器的目錄名稱
  if dir.value <> "" then 
   lstrFileFolder = dir.value 
  else 
   lstrFileFolder = "c:\" 
  end if 

  ' 獲得文件名稱 
  lstrFileName = loFile.PostedFile.FileName
   ' 注: loFile.PostedFile.FileName 返回的是
   通過(guò)文件對(duì)話框選擇的文件名,這之中包含了文件的目錄信息
  lstrFileName = Path.GetFileName ( lstrFileName ) 
   ' 去掉目錄信息,返回文件名稱

  ' 判斷上傳目錄是否存在,不存在就建立 
  If ( not Directory.Exists ( lstrFileFolder ) ) Then 
   Directory.CreateDirectory ( lstrFileFolder ) 
  End If 

   '上傳文件到服務(wù)器 
  lstrFileNamePath = lstrFileFolder  lstrFileName 
   ' 得到上傳目錄及文件名稱 
  loFile.PostedFile.SaveAs ( lstrFileNamePath ) 

   ' 獲得并顯示上傳文件的屬性 
  FileName.Text = lstrFileName
   ' 獲得文件名稱
  FileType.Text = loFile.PostedFile.ContentType 
   ' 獲得文件類型
  FileLength.Text = cStr ( loFile.PostedFile.ContentLength ) 
   ' 獲得文件長(zhǎng)度
  FileUploadForm.visible = false 
  AnswerMsg.visible = true
   ' 顯示上傳文件屬性
  End sub 
</SCRIPT >
<ASP:panel id = "FileUploadForm" visible = " true " runat = "server" > 
<form method = "post" enctype = "multipart/form-data" runat = "server" >
 <h1 > 歡迎使用ASP.NET頁(yè)面實(shí)現(xiàn)文件上傳 </h1 >
  請(qǐng)選擇上傳到服務(wù)器的文件名稱: 
?。糹nput id = "loFile" type = "file" runat = "server" > <br >
  請(qǐng)輸入上傳到服務(wù)器的目錄名稱: 
 <input id = "dir" type = "text" runat = "server" > <br >
?。糹nput type = "submit" value = "開始上傳" OnServerClick = "  
   UploadFile_Clicked" runat = "server" >
?。糱r >
</form >
</ASP:panel >
<ASP:panel id = "AnswerMsg" visible = " false " runat = "server" >
 謝謝使用ASP.NET頁(yè)面實(shí)現(xiàn)文件上傳 <br >
 成功上傳 <ASP:label id = "FileName" runat = "server" /> <br > 
 文件大小 <ASP:label id = "FileLength" runat = "server" /> 字節(jié) <br >  文件類型 <ASP:label id = "FileType " runat = "server" /> <br > 
</ASP:panel >
</BODY >
</HTML >

五. 總結(jié)
至此我們就完成了一個(gè)比較完善的FTP文件上傳軟件的全部工作,由此可見ASP.NET的功能還是比較強(qiáng)大的。通過(guò)本例子,我們也看到要想靈活運(yùn)用ASP.NET,還要深入掌握微軟公司為.NET FRAMEWORK開發(fā)的軟件開發(fā)包(SDK BETA 2),只有掌握了.NET FRAMEWORK開發(fā)的軟件開發(fā)包,才可能用ASP.NET開發(fā)出功能更強(qiáng)大,生命力更大的軟件。

以上就是利用ASP.NET設(shè)計(jì)FTP文件上傳的全部過(guò)程,希望對(duì)大家熟練掌握ASP.NET設(shè)計(jì)FTP文件上傳有所幫助。

您可能感興趣的文章:
  • asp 中常用的文件處理函數(shù)
  • ASP.NET MVC處理文件上傳的小例子
  • asp.net 文件上傳實(shí)例匯總
  • asp.net文件上傳示例分享
  • ASP.NET讓FileUpload控件支持瀏覽自動(dòng)上傳功能的解決方法
  • asp.net fileupload控件上傳文件與多文件上傳
  • asp.net FileUpload控件實(shí)現(xiàn)文件格式判斷與文件大小限制
  • ASP.NET實(shí)現(xiàn)的簡(jiǎn)單易用文件上傳類
  • ASP.NET對(duì)大文件上傳的解決方案
  • asp.net批量多選文件上傳解決方案
  • asp.net文件上傳帶進(jìn)度條實(shí)現(xiàn)案例(多種風(fēng)格)
  • asp.net文件上傳解決方案(圖片上傳、單文件上傳、多文件上傳、檢查文件類型)
  • ASP.NET MVC5實(shí)現(xiàn)文件上傳與地址變化處理(5)
  • ASP.NET文件處理如何操作

標(biāo)簽:廣西 開封 西雙版納 梧州 威海 甘孜 隨州 烏蘭察布

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET設(shè)計(jì)FTP文件上傳的解決方案》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    天门市| 上蔡县| 西盟| 大厂| 泾阳县| 广元市| 贡觉县| 新邵县| 滕州市| 金昌市| 永丰县| 巧家县| 满洲里市| 太白县| 五寨县| 黑山县| 行唐县| 临泽县| 东阳市| 固始县| 彭水| 辛集市| 饶阳县| 舞钢市| 胶南市| 华安县| 丰顺县| 龙川县| 韶关市| 新乡县| 新巴尔虎右旗| 嘉义市| 桂平市| 南城县| 买车| 象州县| 天镇县| 荆州市| 桂东县| 绵竹市| 施甸县|