質問: @ftp_put($conn_id, $remote_file, $local_file, $mode); // アップロード状況を確認する if (!$upload) { return die("アップロード失敗!"); } else { echo "$local_file を $remote_file へ アップロードしました\n"; } //FTP接続終了 ftp_close($conn_id); return true; } //FTPサーバー名 $ftp_server="FTPサーバー名"; //ユーザー名 $ftp_user_name="ユーザー名"; //パスワード $ftp_user_pw="パスワード"; //アップロード先のリモートファイルのパス $remote_file="./"; //アップロードするローカルファイルのパス $local_file= $_FILES['up_file']['tmp_name']; //転送モード $mode=FTP_ASCII; FTP_Upload($ftp_server,$ftp_user_name,$ftp_user_pw,$remote_file,$local_file,$mode); ?> ``` プログラムはあるサイトに記載してあったものです。 FTPのアクセスはできましたがその後のアップロードができません。 まだPHPの知識は浅いです。 浅いからと言って丸投げしようと考えている訳ではありません。 わからないところ・問題であろうコードは ``` //アップロード先のリモートファイルのパス $remote_file="./"; //アップロードするローカルファイルのパス $local_file= $_FILES['up_file']['tmp_name']; ``` まず、ファイルを作成する関数はfopen()を使用します。 しかし、この行では使用されていません。 また、リモートパスは public/htdocs/up/ などのように絶対パスで記述しなければならないでしょうか? エラーログは何も書いてありませんでした。 まず第一にファイルのアップロードができないという問題を解決したいです。 どこが間違えているのか、fopenを使用しないのは正しいのか教えてください。 よろしくお願いします。
回答: $remote_fileにはファイル名を入れるのでは? アップ先がカレントディレクトリで、元のファイル名を用いるのであれば ``` $remote_file = $_FILES['up_file']['name']; ``` とすればよいかと思います。