欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2022年04月27日 08:26:26   投稿:lijiao  
這篇文章主要介紹了ASP.NET設(shè)計(jì)FTP文件上傳的解決方案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

一. 軟件編寫及的運(yùn)行環(huán)境

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

二. 軟件的基本功能

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

 

圖1:軟件的操作界面

 

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

三. 軟件設(shè)計(jì)中的重要步驟及具體解決辦法

(一).擇本地要上傳到服務(wù)器的文件

首先要感謝ASP.NET的強(qiáng)大功能,他提供的HTML控制元件,使得我們很容易的通過一個(gè)對話框來選擇要上傳的文件。當(dāng)然你的瀏覽器也必須是IE 3.02 或者Netscape 3.0版本或者比這二者版本高的瀏覽器。通過下列語句就可以完成選擇本地一個(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>

(三).獲得上傳的文件名稱及對磁盤的若干操作

為了獲得上傳的文件名稱,必須要引入一個(gè)名稱空間( NameSapce ) --System.IO。此名稱空間里面定義了許多關(guān)于文件及磁盤操作的類,在本軟件中就是通過這些類的某些方法和屬性來完成軟件中的一些功能。

(1). 獲得上傳文件的名稱

使用Path類中的GetFileName方法,具體如下:
lstrFileName = loFile.PostedFile.FileName
' 注: loFile.PostedFile.FileName 返回的是通過文件對話框選擇的文件名,
這之中包含了文件的目錄信息
lstrFileName = Path.GetFileName ( lstrFileName )
' 去掉目錄信息,返回文件名稱

(2). 判斷上傳目錄是否存在,不存在就建立

建立目錄要使用到Directory類中的 CreateDirectory 方法,判斷目錄是否存在要用到 Directory 類中的Exists方法。具體如下:

If ( not Directory.Exists( lstrFileFolder ) ) Then
 Directory.CreateDirectory ( lstrFileFolder )
End If

' 注:lstrFileFolder是用戶填入的目錄名稱,或者是缺省的目錄名稱

(四).上傳選定文件到服務(wù)器上

在前面工作都已經(jīng)完成以后,就可以上傳文件了,上傳文件相對比較簡單,就用下面2行語句就可以完成上傳工作。
lstrFileNamePath = lstrFileFolder & lstrFileName
 ' 得到上傳目錄及文件名稱
loFile.PostedFile.SaveAs ( lstrFileNamePath )
 '上傳文件到服務(wù)器

(五).獲得并顯示上傳文件的屬性

FileName.Text = lstrFileName
 ' 獲得文件名稱
FileType.Text = loFile.PostedFile.ContentType
 '獲得文件類型
FileLength.Text = cStr ( loFile.PostedFile.ContentLength )
 '獲得文件長度
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 返回的是
   通過文件對話框選擇的文件名,這之中包含了文件的目錄信息
  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 ) 
   ' 獲得文件長度
  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頁面實(shí)現(xiàn)文件上傳 </h1 >
  請選擇上傳到服務(wù)器的文件名稱: 
 <input id = "loFile" type = "file" runat = "server" > <br >
  請輸入上傳到服務(wù)器的目錄名稱: 
 <input id = "dir" type = "text" runat = "server" > <br >
 <input type = "submit" value = "開始上傳" OnServerClick = "  
   UploadFile_Clicked" runat = "server" >
 <br >
</form >
</ASP:panel >
<ASP:panel id = "AnswerMsg" visible = " false " runat = "server" >
 謝謝使用ASP.NET頁面實(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)大的。通過本例子,我們也看到要想靈活運(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文件上傳的全部過程,希望對大家熟練掌握ASP.NET設(shè)計(jì)FTP文件上傳有所幫助。

相關(guān)文章

  • .NET Core源碼解析配置文件及依賴注入

    .NET Core源碼解析配置文件及依賴注入

    這篇文章我們設(shè)計(jì)了一些復(fù)雜的概念,因?yàn)橐獙SP.NET Core的啟動(dòng)及運(yùn)行原理、配置文件的加載過程進(jìn)行分析,依賴注入,控制反轉(zhuǎn)等概念的講解等
    2019-04-04
  • asp.net dataview做無限極分類的又一用法

    asp.net dataview做無限極分類的又一用法

    通??吹絼e人以及自己以前在綁定無限極分類的時(shí)候,總是需要多次連接數(shù)據(jù)庫,這樣覺得造成了資源的浪費(fèi),然后我想一次把所有數(shù)據(jù)先取出來(類型不是很多的情況),這樣可以節(jié)省服務(wù)器的開銷。
    2009-11-11
  • .NET實(shí)現(xiàn)微信公共平臺(tái)上傳下載多媒體文件

    .NET實(shí)現(xiàn)微信公共平臺(tái)上傳下載多媒體文件

    這篇文章主要介紹了.NET實(shí)現(xiàn)微信公共平臺(tái)上傳下載多媒體文件的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • asp.net 數(shù)組中字符串替換的幾種方式

    asp.net 數(shù)組中字符串替換的幾種方式

    數(shù)組中字符串替換的幾種方式,需要用到的朋友可以參考下。
    2009-06-06
  • c#中兩種不同的存儲(chǔ)過程調(diào)用與比較

    c#中兩種不同的存儲(chǔ)過程調(diào)用與比較

    存儲(chǔ)過程的調(diào)用在B/S系統(tǒng)中用的很多。傳統(tǒng)的調(diào)用方法不僅速度慢,而且代碼會(huì)隨著存儲(chǔ)過程的增多不斷膨脹,難以維護(hù)。新的方法在一定程度上解決了這些問題
    2012-12-12
  • ASP.NET深度復(fù)制和淺度復(fù)制分析

    ASP.NET深度復(fù)制和淺度復(fù)制分析

    這篇文章主要介紹了ASP.NET深度復(fù)制和淺度復(fù)制,實(shí)例分析了ASP.NET中深度復(fù)制和淺度復(fù)制的區(qū)別與具體應(yīng)用,對于學(xué)習(xí)ASP.NET有著很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • asp.net core webapi項(xiàng)目配置全局路由的方法示例

    asp.net core webapi項(xiàng)目配置全局路由的方法示例

    這篇文章主要介紹了asp.net core webapi項(xiàng)目配置全局路由的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 淺談ASP.NET Core 2.0 布局頁面(譯)

    淺談ASP.NET Core 2.0 布局頁面(譯)

    本篇文章主要介紹了淺談ASP.NET Core 2.0 布局頁面(譯),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • ADO.NET 讀取EXCEL的實(shí)現(xiàn)代碼((c#))

    ADO.NET 讀取EXCEL的實(shí)現(xiàn)代碼((c#))

    經(jīng)常需要在數(shù)據(jù)庫與Execl之間互導(dǎo)數(shù)據(jù)。net時(shí)代,ADO.NET可以使用使用Microsoft.Jet.OleDb訪問訪問Excel,網(wǎng)上已經(jīng)有很多類似的資源,最典型也是最簡單的可能如下:(asp.net環(huán)境)
    2012-12-12
  • .NET讀寫Excel工具Spire.Xls使用 Excel單元格控制(3)

    .NET讀寫Excel工具Spire.Xls使用 Excel單元格控制(3)

    這篇文章主要為大家詳細(xì)介紹了.NET讀寫Excel工具Spire.Xls使用,Excel單元格控制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評論