SQLの窓

2014年01月14日


PHP の cURL で ftp サーバーにファイルをアップロードする(SSLなし)

PHP のマニュアル通りに考えると、いろいろ変なところもあるのですが、実際これでアップロードできています。SSL 対応すれば、FTPS でも可能だと思います。

URL の指定方法が変わっていて、「ログインディレクトリからの相対位置」と書いてますが、先頭の FTPサーバにログインして自動的にカレントとなる場所からの階層を指定します。実際には、順番にディレクトリ変更して目的の場所に移動して処理しているようです。
<?php
// *********************************************************
// ユーザとパスワード
// *********************************************************
$username = 'userid';
$password = 'password';

// *********************************************************
// 対象ファイル
// ログインディレクトリからの相対位置
// *********************************************************
$url = 'ftpサーバ/path/index.htm';

// *********************************************************
// URL
// *********************************************************
$ftp_server = "ftp://" . $username . ":" . $password . "@" . $url;

// *********************************************************
// 開始
// *********************************************************
$ch = curl_init();

// *********************************************************
// デバッグ用の詳しいメッセージを出力
// *********************************************************
curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
$fpe = fopen("./debug_ftp.txt","w");
curl_setopt($ch, CURLOPT_STDERR, $fpe);

// *********************************************************
// 転送用のオプション
// *********************************************************
curl_setopt($ch, CURLOPT_URL, $ftp_server);

// *********************************************************
// アップロード用
// *********************************************************
curl_setopt($ch, CURLOPT_PUT, true); 
$putData = fopen("/home/lightbox/www/homepage/dummy/test/links.htm","r");
$sz = filesize("/home/lightbox/www/homepage/dummy/test/links.htm");
print "filesize : $sz<br>";
curl_setopt($ch, CURLOPT_INFILE, $putData); 
curl_setopt($ch, CURLOPT_INFILESIZE, $sz); 

// *********************************************************
// 実行
// *********************************************************
curl_exec($ch);

// *********************************************************
// 終了
// *********************************************************
curl_close($ch);

// *********************************************************
// 後処理
// *********************************************************
fclose($putData);
fclose($fpe);


print "done.<br>\n";
?>




【PHP + 通信の最新記事】
posted by lightbox at 2014-01-14 17:33 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり