![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
下記のようなスクリプトでFTPダウンロードを試みています。
ダウンロード元はホスティング会社のサーバで、
ダウンロード先は私のWindowsPCになります。
接続から読み込みまで万事うまく行き、エラー表示もなく、
Successfully written to C:\test\backup.zip
というメッセージが表示されるところまでいくのですが、
C:\test\を開けてみると肝心のファイルが見当たりません。
サーバやPCの設定等もあるかもしれませんが、
どのような原因が考えられますでしょうか?
よろしくお願いいたします。
<スクリプト>
$local_file = "C:\\test\\backup.zip";
$server_file = "/tmp/backup.zip";
$conn_id = ftp_connect($ftpserver);
$login_result = ftp_login($conn_id, $usr, $pass);
ftp_pasv($conn_id, true);
if(ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)){
echo "Successfully written to {$local_file}";
} else {
echo "There was a problem";
}
ftp_close($conn_id);
No.2ベストアンサー
- 回答日時:
>要するにローカルPCにサーバ上のファイルを保存するためには、
>ftp_getをローカルPCで実行しなくてはならないという理解でよろしいでしょうか?
そうですね。サーバ側のスクリプトを動かしたらローカルに勝手に(何の警告もなしに)ファイルが出来上がるようだと怖くて使えません。セキュリティ的にどう考えても無理だし、ましてサーバ側ではローカルPCのpathなんてわかりませんから、httpでダウンロードするにしても「ファイル名」しか指定出来ません(しかも「参考」程度の扱いですよね)。
ローカルPCにApacheとphpをインストールして、http://localhost/xxxxx.php にアクセスしてそのphpスクリプトがftp_getを実行することになりますが、そこまでしてftpクライアントを使わずにダウンロードする意味はないでしょう。
なるほど良く理解しました。
FTP関連の関数はなかなか個人では使う場面が限られそうな感じですね。
私が別にローカルにファイルサーバを持っているような場合に、
CRONなどで勝手に回しておくと便利な気がします。
ご丁寧なご回答ありがとうございました。
とりあえずは怠惰せずにHTTPでやっていきたいと思います。
No.1
- 回答日時:
質問者さんのローカルPCで動いているFTPサーバは、外部から接続直後のカレントをどう設定されているんでしょうか?
この回答への補足
ちょっと私の書き方が悪かったかもしれません。
再度お伝えですが、LinuxサーバにあるデータをローカルPCに保存したいという内容です。
元々HTTPでZipをヘッダー出力してダウンロードしていたのですが、
FTPの方が軽いだろうと思って、FTP関数を使ってみようと思い立ちました。
ところが自分でいろいろ試してみて
ちょっとftp_getというものを勘違いしていたようです。
私はftp_getを使ったサーバ上のphpをブラウザで実行すれば、
サーバ上のファイルがローカルにDLされるような、
HTTPによるヘッダー出力のような動作を想定していましたが、
どうやらftp_getはphpを実行する場所にDLするものだと理解しました。
質問時のスクリプトを動かしてみた結果の$local_fileは
サーバ上のphpファイルのあるディレクトリに
C:\test\backup.zipという名前のファイルでできていました。
要するにローカルPCにサーバ上のファイルを保存するためには、
ftp_getをローカルPCで実行しなくてはならないという理解でよろしいでしょうか?
もしそうであれば、HTTPでDLした方が良いですね。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- その他(インターネット接続・インフラ) 楽天ひかりでホームページアップロードが出来ない 1 2022/07/30 10:02
- PHP ファイルアップロードの上限を増やす 7 2023/06/23 12:50
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- プロバイダー・ISP hpb22の接続方法の変更 1 2023/08/06 18:47
- Android tar.ファイルのインストールについて知りたいです 2 2022/07/23 15:34
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelとPHPについて・・・
-
CSVファイルのダウンロード
-
ファイルがダウンロードされる...
-
DelphiのURLDownloadToFile関数...
-
csvファイルの取り込み
-
phpでzipファイルダウンロード...
-
zip圧縮の種類について
-
PHPのFTP関数ftp_fgetエラーに...
-
ファイル一覧を表示しその画面...
-
サーバー上のファイルをブラウ...
-
PHPでCSVファイルの任意の行だ...
-
VB.NETのFTPダウンロードについて
-
指定したURLからファイル(PDF...
-
PHPでファイルのダウンロードす...
-
ファイル(PDF・エクセル・ワー...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
PHPで新しいウインドウで開く命...
-
別ファイルの変数を呼び出した...
-
バッチを用いたフォルダの自動移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで複数ファイルのダウン...
-
ファイル一覧を表示しその画面...
-
zip圧縮の種類について
-
eclipseでコメントアウトができ...
-
ブラウザでExcelをダウンロード...
-
複数ファイルを連続でダウンロード
-
phpでzipファイルダウンロード...
-
libxml2のインストール
-
PHPでファイルのダウンロードす...
-
CSV出力時の”0”表示(電話番号...
-
PHPでダウンロードしたファイル...
-
phpでうまく画像がダウンロード...
-
wgetの使い方
-
Excelファイルをダウンロード
-
サーバー上のファイルをブラウ...
-
日本語ファイル名のアップロー...
-
ファイルのダウンロードのイベ...
-
ダウンロードファイル名の文字...
-
ファイルへの直接アクセスをで...
-
動画をダウンロードするとサイ...
おすすめ情報