phpのcURL関数において、
ftpやsshを使ってファイルダウンロードやアップロードしたい時があると思います。
ファイルをアップロード、ダウンロードする方法を記しておきます。
ファイルをftpでアップロードする方法
$conn = curl_init(); $filename = "testfile"; //ファイル名 $username = "username"; //ユーザー名 $password = "password"; //パスワード $fp = fopen($filename, 'r'); $url = "ftp://".$username.":".$password."@hogefugapiyo.com/".$filename; curl_setopt($conn, CURLOPT_URL, $url); curl_setopt($conn, CURLOPT_UPLOAD, 1); curl_setopt($conn, CURLOPT_INFILE, $fp); curl_setopt($conn, CURLOPT_INFILESIZE, filesize($filename)); $response = curl_exec($conn); curl_close($conn);
ファイルをダウンロードする方法
$conn = curl_init(); $filename = "testfile"; //ファイル名 $username = "username"; //ユーザー名 $password = "password"; //パスワード $fp = fopen($filename, 'r'); $url = "ftp://".$username.":".$password."@hogefugapiyo.com/".$filename; curl_setopt($conn, CURLOPT_URL, $url); curl_setopt($conn, CURLOPT_FILE, $fp); curl_setopt($conn, CURLOPT_HEADER, 0); $response = curl_exec($conn); curl_close($conn);
オプションについて
オプション名 | 説明 |
---|---|
CURLOPT_URL | リクエストするURL |
CURLOPT_UPLOAD | データのアップロードを有効にする |
CURLOPT_INFILE | アップロード時に転送内容を読み込むファイル |
CURLOPT_INFILESIZE | ファイルをリモートサイトにアップロードする際のファイルサイズ |
CURLOPT_FILE | 転送内容が書き込まれるファイル |
CURLOPT_HEADER | TRUE を設定すると、ヘッダの内容も出力します |