• 締切済み

画像アップロード型掲示板でのファイル選択ダイアログ

画像アップロード型の掲示板において、ファイル選択ダイアログでファイル選択したら、 FTPサーバーにアップし、かつ、アップしたユーザー自身が、ブラウザでその画像を見れるという仕様にしたいんですが、FTPサーバー側に選択した画像ファイルが、アップされてないのです。 アップした画像をローカルのブラウザのページで見ると、x印のアイコンだけが表示されていて、中身の画像ファイルが表示されてないのです。ですが、そのx印のアイコンを右クリックすると、画像のピクセル数や、FTPサーバー先の絶対パスがちゃんと表示されてるんです。 下記のようなファイル選択ダイアログが表示されるHTMLと、そこから呼び出すPHPスクリプト において、どこか間違っているのか教えていただきたいです。よろしくお願いします。 <html> <head><title>ファイル選択ダイアログ</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form name="form1" method="POST" enctype="multipart/form-data" action="file_upload.php"> <input type="file" name="result"> <input type="submit" name="upload" value="添付画像"> </form> </body> </html> --------------------------------------------------------------------- <?php $photo = $_POST['photo']; //////////////////////////////////// // ローカル側でファイルをオープン // //////////////////////////////////// $filename = "./files/$photo"; // $parent(親ディレクトリの直下のファイルだから、何もつけなくてよい) echo("filename=".$filename); // デバッグ用 $fp=fopen($filename, 'rb') or die; /* ファイルオープンダイアログで選択したファイルのファイル名はbbs.phpと同じディレクトリにあるfile_uproad.php から見ると、$photoにつけるパスは不要 */ /////////////////////////////////////////////////////////////////////// // FTPサーバーに接続、ログイン、サーバー側のカレントディレクトリ変更 // /////////////////////////////////////////////////////////////////////// $ftp_server="users109.lolipop.jp"; $ftp = ftp_connect($ftp_server); $res = ftp_login($ftp, "~", "~"; if($res==FALSE){ echo("FTPサーバーのログインに失敗しました。"); exit(1); } $cur = ftp_pwd($ftp); // サーバーにログイン直後のサーバー側のカレントディレクトリ echo("cur=".$cur); exit(1); ftp_chdir($ftp, $cur); // サーバー側のディレクトリを変更 ///////////////////////////////////////////// // FTPサーバーに画像ファイルをアップロード // ///////////////////////////////////////////// $remote_file = $photo; // リモート上でのファイル名指定 echo($remote_file); //if(ftp_fput($ftp, $remote_file, $fp, FTP_BINARY)){ // ローカルでオープンしている画像ファイルをバイナリモードでFTPサーバーにアップロードする if(ftp_fput($ftp, $remote_file, $fp, FTP_BINARY)){ // リモートのカレントディレクトリにアップされる echo "Successfully uploaded $file\n"; }else{ echo "There was a problem while uploading $file\n"; } //////////// // 後処理 // //////////// fclose($fp); ftp_close($ftp); //header("Location: bbs.php"); ?>

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

formからPOSTしたデータをftpで転送したいということ? $_FILESに対する処理がないようですが?

関連するQ&A

専門家に質問してみよう