これは InterSystems FAQ サイトの記事です。
%Net.FtpSession クラスを使用して FTP サーバから、アップロード/ダウンロードする方法をご紹介します。
1. FTPサーバにイメージファイルをアップロードする
set tmpfile="c:\temp\test.jpg"
set ftp=##class(%Net.FtpSession).%New()
// ftp サーバへ接続する
do ftp.Connect("<サーバ名>","<ユーザ名>","<パスワード>")
// 転送モードをBINARYに設定
do ftp.Binary()
// アップロードするディレクトリに移動
do ftp.SetDirectory("/temp/upload")
// アップロードするファイルのストリームを用意
set file=##class(%File).%New(tmpfile)
do file.Open("UK\BIN\")
// ファイルをアップロード
// 第1引数: アップロード先に作成するファイル名
// 第2引数: アップロードするファイル・ストリーム
do ftp.Store("test.jpg",file)
// ftp サーバからログアウト
do ftp.Logout()
// ファイルを閉じる
do file.Close()
// (オプション) アップロードしたファイルを削除する
//do ##class(%File).Delete(tmpfile)
2. FTPサーバからイメージファイルをダウンロードする
set ftp=##class(%Net.FtpSession).%New() // ftp サーバへ接続する
do ftp.Connect("<サーバ名>","<ユーザ名>","<パスワード>") // 転送モードをBINARYに設定
do ftp.Binary() // ダウンロードして格納するファイル・ストリームを用意
set stream=##class(%FileBinaryStream).%New()
do stream.LinkToFile("c:\temp\testdownload.jpg")
// ダウンロードするディレクトリに移動
do ftp.SetDirectory("/temp/download") // ファイルをダウンロードしてストリームを閉じる
do ftp.Retrieve("test.jpg",stream)
do stream.SaveStream()
Set stream="" // ftp サーバからログアウト
do ftp.Logout()
関連する FAQ トピックもご参照ください。