Home 開発関連情報 VB.NET VB.NETでFTPを使ったファイルアップロード
VB.NETでFTPを使ったファイルアップロード PDF 印刷 Eメール
作者 熊川 勝   
2008年06月 04日(水曜日) 02:05

● VB.NETでFTPを使ったファイルのアップロード処理サンプル

FTPでのファイルアップロード処理は、FtpWebRequestを利用します。 

※下記のサンプルはこれらをImportしている前提で作成してあります 

Imports System.Net
Imports System.IO


Dim ftpUri As Uri = New Uri("ftp://xxx.jp/xxx.zip")
Dim localFileName As String = "xxx.zip"

' FTPへの接続準備(URIの設定)
Dim ftpRequest As FtpWebRequest = FtpWebRequest.Create(ftpUri)
' FTPへの接続準備(ユーザー/パスワードの設定)
ftpRequest.Credentials = New System.Net.NetworkCredential("user", "password")
' FTPへの接続準備(UploadFileはファイルのアップロード処理)
ftpRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile

' KeepAliveを利用する場合はTrueを設定
ftpRequest.KeepAlive = False
' Binaryファイルをダウロードする場合はTrueを設定
ftpRequest.UseBinary = True
' Passiveモードを利用する場合はTrueを設定
ftpRequest.UsePassive = False

' ファイルをアップロードするためのStreamを取得
Dim ftpStream As Stream = ftpRequest.GetRequestStream()
' この例ではファイルをアップロードするのでFileStreamを用意する
Dim inFileStream As FileStream = New FileStream(localFileName, FileMode.Open, FileAccess.Read)

' 受信に利用するバッファ
Dim dataBuffer(8191) As Byte

' 送信処理
Dim readDataSize As Integer = inFileStream.Read(dataBuffer, 0, dataBuffer.Length)
Do While readDataSize > 0
    ' ローカルファイルへの書き込み
    ftpStream.Write(dataBuffer, 0, readDataSize)
    ' データを指定されたバッファ分受信する
    readDataSize = inFileStream.Read(dataBuffer, 0, dataBuffer.Length)
Loop

' 後処理
inFileStream.Close()
inFileStream = Nothing
ftpStream.Close()
ftpStream = Nothing

' FTPサーバーからのステータスを取得する
Dim ftpRes As FtpWebResponse = ftpRequest.GetResponse()
' FTPサーバーから送信されたステータスを表示
Console.WriteLine("{0}: {1}", ftpRes.StatusCode, ftpRes.StatusDescription)
' 後処理
ftpRes.Close()

 

LAST_UPDATED2
 
HSB WebSite - フリーITエンジニア 熊川のWebSite -, Powered by Joomla! and designed by SiteGround web hosting