● 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()
|