FTPによるファイル送信を実装。
ローカルのzipファイルをFTPサーバに送信するという内容です。
以下のような流れになります。
FTPに関する関数も豊富に揃っているので楽勝かと思いきや、以下のような
二つのエラー+αが発生する等、結構苦戦しました…(´・ω・`)
Function name must be a string in
⇒ftp_closeの先頭に「$」をつけて「$ftp_close」としていたのが原因。
寝ぼけてたのか俺は (゚Д゚)!?
The filename, directory name, or volume label syntax is incorrect
⇒ftp_putでアップロード先を指定する際、ファイル名が抜けていた。
上記を解決した後にアップロード先を見てみたら、zipファイルは出来ていたものの容量が極端に少なく、
開こうとしたら「ファイルは壊れています」と言われてしまう始末…
ftp_putの引数で「FTP_ASCII」を指定したのが原因だと気付きました。
(zipファイルのアップロードなので「FTP_BINARY」を指定しないと…☆)
ということで、以下が完成したソースです。
$ftpServer = "IPアドレス"; // ドメイン名でも可
$ftpId = "choo"; // FTPログインユーザ
$ftpPassword = "0429"; // FTPログインパスワード
$file = "Choo.txt.zip"; // アップロードしたいファイル
$uploadFile = str_replace(".txt", "", $file); // アップロード後のファイル名
$stream = ftp_connect($ftpServer);
$conn = ftp_login($stream, $ftpId, $ftpPassword) or die("muri!!");
if($conn){
set_time_limit(360);
ftp_put($stream, "test/".$uploadFile, $file, FTP_BINARY);
}
ftp_close($stream);