PHPを使用してファイルをアップロードします。
まずAサーバーにフォームを設置しそこからBサーバーにファイルを保存するようにします。
以下、問題のプログラムです。
PHP
1 2index.html 3 4<html lang="ja"> 5<head> 6 <meta charset="utf-8"> 7 <title>test</title> 8</head> 9<body> 10<form method="post" action="./up.php" enctype="multipart/form-data"> 11ファイル:<input type="file" name="up_file"><br> 12<input type="submit" value="upload"> 13</form> 14</body> 15</html> 16 17 18up.php 19 20<?php 21// 22function FTP_Upload($ftp_server,$ftp_user_name,$ftp_user_pw,$remote_file,$local_file,$mode){ 23 //FTPサーバーに接続 24 $conn_id = @ftp_connect($ftp_server); 25 26 //ユーザ名とパスワードでログイン 27 $login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pw); 28 29 //接続確認 30 if ((!$conn_id) || (!$login_result)) { 31 return die("FTP接続失敗!"); 32 } else { 33 echo "ユーザー $ftp_user_name として、 $ftp_server に接続しました<br>\n"; 34 } 35 36 //ローカルファイルをアップロード 37 $upload = @ftp_put($conn_id, $remote_file, $local_file, $mode); 38 // アップロード状況を確認する 39 if (!$upload) { 40 return die("アップロード失敗!"); 41 } else { 42 echo "$local_file を $remote_file へ アップロードしました<br>\n"; 43 } 44 //FTP接続終了 45 ftp_close($conn_id); 46 return true; 47} 48 49//FTPサーバー名 50$ftp_server="FTPサーバー名"; 51//ユーザー名 52$ftp_user_name="ユーザー名"; 53//パスワード 54$ftp_user_pw="パスワード"; 55//アップロード先のリモートファイルのパス 56$remote_file="./"; 57//アップロードするローカルファイルのパス 58$local_file= $_FILES['up_file']['tmp_name']; 59//転送モード 60$mode=FTP_ASCII; 61 62FTP_Upload($ftp_server,$ftp_user_name,$ftp_user_pw,$remote_file,$local_file,$mode); 63?> 64
プログラムはあるサイトに記載してあったものです。
FTPのアクセスはできましたがその後のアップロードができません。
まだPHPの知識は浅いです。
浅いからと言って丸投げしようと考えている訳ではありません。
わからないところ・問題であろうコードは
PHP
1//アップロード先のリモートファイルのパス 2$remote_file="./"; 3//アップロードするローカルファイルのパス 4$local_file= $_FILES['up_file']['tmp_name'];
まず、ファイルを作成する関数はfopen()を使用します。
しかし、この行では使用されていません。
また、リモートパスは
public/htdocs/up/
などのように絶対パスで記述しなければならないでしょうか?
エラーログは何も書いてありませんでした。
まず第一にファイルのアップロードができないという問題を解決したいです。
どこが間違えているのか、fopenを使用しないのは正しいのか教えてください。
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。