下記のPHPスクリプトで、JPEGファイルをFTPサーバーにアップしようとしてるんですが、
サーバー側でエラーが出ます。どこが間違っているのか指摘していただけますか?
※ftp_chdir($ftp, $path); の$path は、相対パスか絶対パスか、URLか
※ftp_fput($ftp, $remote_file, $fp, FTP_BINARY)の、第二引数$remoto_file は、リモートでの
ファイル名だけでよいのか、相対パスか、絶対パスかURLか
※ちなみに、FTPサーバーへのログインはできてます。
<?php
//$photo = "akashi.jpg";
$photo = $_GET['photo'];
// FTPサーバーに接続
$ftp_server="users109.lolipop.jp";
$ftp = ftp_connect($ftp_server);
//$res = ftp_login($ftp, "root", " ");
$res = ftp_login($ftp, " ", " ");
if($res==FALSE){
echo("FTPサーバーのログインに失敗しました。");
exit(1);
}
//$path = "/home/users/1/raindrop.jp-5247423/web/tsukushinbo/upload_photo"; // 絶対パス
$path = "../tsukushinbo/upload_photo"; // 相対パス
ftp_chdir($ftp, $path); // サーバー側のディレクトリを変更
/*
$cur = ftp_pwd($ftp);
echo($cur);
exit(1);
*/
// ローカル側でファイルをオープン
/*
$dir = dirname($photo); // ファイルあるいはディレクトリへのパスを含む文字列を受け取って、 親ディレクトリのパスを返します。
//$filename = $dir."/".$photo;
echo($filename);
exit(1);
*/
$fp = fopen("$photo", 'rb') or die;
//$fp = fopen("$filename", 'r') or die; // ローカルでオープンされているファイルのポインタ。 ファイルの終端まで進むと読み込みが終了する。
// FTPサーバーに画像ファイルをアップロード
$remote_file = $photo; // リモート上でのファイル名指定
if(ftp_fput($ftp, $remote_file, $fp, FTP_BINARY)){ // ローカルでオープンしている画像ファイルをバイナリモードでFTPサーバーにアップロードする
echo "Successfully uploaded $file\n";
}else{
echo "There was a problem while uploading $file\n";
}
fclose($fp);
ftp_close($ftp);
//header("Location: bbs.php");
?>
No.1ベストアンサー
- 回答日時:
>※ftp_chdir($ftp, $path); の$path は、相対パスか絶対パスか、URLか
FTPサーバにURLを与えても仕方ない気がしますけど(ftp:// で記述できるURLがあるなら別ですけどね)。
RTFM.
http://www.php.net/manual/ja/function.ftp-chdir. …
カレントディレクトリに存在するサブディレクトリに移動するので「ディレクトリ名」だけです。上の階層に移動するときはftp_cdupを使いますので。
http://www.php.net/manual/ja/function.ftp-cdup.php
∴「今どの階層にいるのか」を意識していないとダメです。
>※ftp_fput($ftp, $remote_file, $fp, FTP_BINARY)の、第二引数$remoto_file は、リモートでの
ファイル名だけでよいのか、相対パスか、絶対パスかURLか
ファイル名だけです。カレントディレクトリにアップロードされますから、あらかじめftp_chdirで移動しておくのが前提です(ここでpathが指定できるならftp_chdirは要らない)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CFileDialogの最初のディレクト...
-
Ethnaの基本設定について
-
ディレクトリ内のファイル名取得
-
FTPコマンドでディレクトリごと...
-
Visual Studio Express 201
-
現在位置より2つ上のディレク...
-
ファイル・ディレクトリ削除を...
-
youtubeに音声のみのmp4ファイ...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
php エラー
-
PHPパーミッションについて
-
「クラス関数」「メンバ関数」...
-
.phpファイルが、表示されない
-
fputcsvで保存せず、そのまま出...
-
PHPから別なPHPへ移動(?)する方法
-
AccessのDoCmd.SendObjectについて
-
PHPで新しいウインドウで開く命...
-
phpでメール送信できません 原...
-
pictureboxに表示した画像のフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチを用いたフォルダの自動移動
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
makefile でファイルをコピーす...
-
絶対パス?絶対アドレス?意味...
-
コマンドプロンプトを指定のデ...
-
VB.NET 最下位のディレクトリ名...
-
現在位置より2つ上のディレク...
-
Visual C++ 2005 Express Editi...
-
fopenでファイルが開かない場合...
-
renameでのPermission deniedエ...
-
MkDir関数
-
[ ディレクトリ '.' は書き込み...
-
visualstudioでc#のdllができない
-
powershell で書いたプログラム...
-
UWSCでファイルのアップロード...
-
DLL のロードの順序
-
JAVA内で複数のファイルを削除...
-
VB2008でFTPでのディ...
おすすめ情報