HSPでFTPアップロードをしよう

2016-08-15_16h12_31

久々にHSPをいじると楽しいですね。そんなに本格的なプログラムを組むわけじゃないので、どちらかというとtipみたいなミニスクリプトになってしまうのですが、参考になれば幸いです。
今回はFTP接続でファイルをアップロードするプログラムを考えてみようと思います。実は以前、とあるサイトを運営していたときに、そこで使っていたアップロードのスクリプトを思い出して、改めて作ってみようと思った次第です。

スポンサーリンク

毎度毎度ですがHSPとは

Hot Soup Processor(ホットスーププロセッサー)は、1995年からおにたまにより開発されているプログラミングツール、およびそのプログラミング言語である。略称はHSP。最新安定バージョンは3.4。

HSPはベーシックライクなプログラムでホント手軽にWindowsなどのアプリケーションが作成できるので、ちょっとした作業用のプログラムを作るのによく利用しています。

HSPホームページ

HSPリファレンスでFTPをみてみる

2016-08-15_14h56_18

HSPリファレンスでFTPを検索してみるとFTP関連の命令があっさりとヒット。まず、ftpopenを使ってFTPセッションを開始するみたいですね。対になる命令はftpclose。セッションの終了(クローズ)をすることでhttpなどの操作が行なえるようになります。以下、使用する主な命令をリファレンスより引用

FTPセッションの開始 ftpopen p1,p2,p3,p4,p5
p1 : ftpサーバーアドレス(文字列)
p2 : ftpログインユーザー名(文字列)
p3 : ftpログインユーザーパスワード(文字列)
p4 : ポート番号(省略可能)
p5 : PASSIVEモードフラグ(省略可能)

FTPセッションの終了 ftpclose

FTPファイル送信 ftpput p1,p2,p3
p1 : サーバー上に作成するファイル名(文字列)
p2(“”) : ローカルから送信されるファイル名(文字列)
p3(0) : 転送モード(0=バイナリ/1=アスキー)(プラグイン / モジュール : hspinet)

単純なスクリプトなのでこんなものでしょうか。後、必要なものは

  • ftpサーバーアドレス
  • ログイン時のユーザー名
  • 同上のパスワード名
  • アップロードするファイル

を用意してくださいませ。ここではindex.htmlというアップロード用ファイルを用意しました。

【index.html】
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>HSPでアップロード</title>
    <link rel="stylesheet" href="">
</head>
<body>
    <h1>HSPでFTPアップロードをしよう</h1>
    <p>無事に表示されればOK</p>
</body>
</html>

アップロード先のftpはそれぞれお使いのサーバーもしくはプロバイダの情報をみて確認してください。

スクリプトを組む

まず、hspinet.asをインクルードして、ネット接続の確認をし、できない場合はプログラム終了します。

#include "hspinet.as"

netinit
if stat : dialog "ネット接続できません。" : end

次にftpの接続先アドレス、ユーザー名、パスワードを設定します。

adr = "ftpサーバーアドレス"
user= "ユーザー名"
pass= "パスワード"

それぞれ対応するものを入力してくださいね。設定が終わったら、次はftp接続処理。まずセッション開始のためにftpopenを実行します。

ftpopen adr,user,pass

もし、接続エラーだった場合の処理を書いておきます。

if stat : dialog "ftp接続エラーです" : end

接続したら、そのことをウインドウに表示します。

mes "FTP接続しました"

アップロードの命令を記述し、エラーが出た場合の処理をしておきます。

ftpput "index.html"
if stat : dialog "アップロードエラーです" : ftpclose : end

最後にアップロードしたことを表示して、FTPセッションを閉じます。

mes "アップロード完了しました"
ftpclose
stop

これで終了です。ただし、サーバーによっては、初期接続位置からディレクトリ移動しないといけない場合があるかもしれません。その場合にはftpdirをつかってFTPディレクトリ移動をしてアップロードの処理をしましょう。

ftpdir start_dir,"www"

実行するスクリプトと同じフォルダにindex.htmlファイルを置いて、実行してみましょう。実行したらアップロードしたアドレスにアクセスしてみてhtmlファイルの表示が出てれば成功です!
2016-08-15_15h56_56
2016-08-15_16h02_57

コード一覧

#include "hspinet.as"

netinit
if stat : dialog "ネット接続できません。" : end

adr = "ftpサーバーアドレス"
user= "ユーザー名"
pass= "パスワード"

ftpopen adr,user,pass
if stat : dialog "ftp接続エラーです" : end

mes "FTP接続しました"

ftpdir start_dir,"www"

ftpput "index.html"
if stat : dialog "アップロードエラーです" : ftpclose : end

mes "アップロード完了しました"
ftpclose
stop

*アドレスやユーザー名、パスワードなど適宜書き換えてください。

今回のまとめ

手軽にプログラムが書けるのが魅力のHSP。こんなに短いコードでもFTP接続、アップロード、セッション終了の処理ができてしまうんですから、すごいですよね。これを応用して、windowsのタスクスケジューラーで定期的に処理させれば、ほぼ自動でアップロードしてくれる仕組みが作れちゃったりしますよ。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする