ベストアンサー phpのftp関数でサーバーから他のサーバーにファイルをアップロードする方法 2010/02/09 08:44 phpのftp関数でサーバーから他のサーバーにファイルをアップロードする方法が 上手くいかずに困っております。 どなたかご教授ください。 宜しくお願いいたします。 みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー UmJammer ベストアンサー率58% (115/196) 2010/02/11 14:18 回答No.2 ANo.1です。 補足説明ありがとうございました。 それで、例示されたスクリプトのどこまでが正常に実行されるのでしょうか(具体的にどのような実行結果が得られるのか)? また、ftp_chdir()が成功しているならばFTP サーバ上でのディレクトリ移動は成功していることになります。 それとエラーメッセージは何も出力されていないのでしょうか、設定によりエラーメッセージが出力されないようになっている場合もあるのでこの点も確認したほうがよさそうです。 質問者 お礼 2010/02/19 15:19 ありがとうございます。 無事解決いたしました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) UmJammer ベストアンサー率58% (115/196) 2010/02/10 01:01 回答No.1 まずはどの辺が上手くいっていないのかを示されてはどうでしょうか。 今のままでは漠然としすぎて回答も得られにくいかと思います。 質問者 補足 2010/02/11 09:01 下記のようにしているのですが、ディレクトリの移動まではできていて 送る先のサーバーのディレクトリが違うのかアップロードできませんでした。アップ先のディレクトリを下のディレクトリに移動することも可能なのでしょうか? $ftp_server="サーバー名"; $ftp_user_name="ユーザー"; $ftp_user_pass="パスワード"; //サーバーに接続する $conn_id = ftp_connect($ftp_server); // ユーザ名とパスワードでログインする $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); // 接続できたか確認する if((!$conn_id) || (!$login_result)){ echo "FTP接続に失敗しました。"; exit; } else { echo "FTP接続に成功しました。"; } if(ftp_chdir($conn_id,"common/img")){ echo "現在のカレントディレクトリは、「" . ftp_pwd($conn_id) . "」です<br />\n"; } else { echo "ディレクトリを移動できません<br />\n"; } // カレントディレクトリの内容を得る $contents = ftp_nlist($conn_id,"."); // $contents を出力する var_dump($contents); $local_file="error.gif"; $remote_file="error.gif"; if(!ftp_put($conn_id,$remote_file,$local_file,FTP_BINARY)){ echo "FTPアップロードに失敗しました。"; exit; } else { echo "FTPアップロードに成功しました。"; } ftp_close($conn_id); 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A phpでFTP関数を有効にする方法 PHPでFTPサーバにファイルをアップロードしたいんですが、うまくいきません。 接続すらできないので、もしやと思いphp info()で確認したところ、「ftpsupport enable」と表示されないとftp関数が実行されないのではないかと思っています。 ftpsupportを有効にするにはphp.iniのどこを変えればよいのでしょうか。色々調べてみたのですが、見つけることができませんでした。 よろしくお願いします。 PHPのFTP関数ftp_fgetエラーに関する疑問 こんにちは PHPでFTPサーバからファイルをダウンロードしようとしていますが、下記のエラーが来ました: PHP Warning: ftp_fget:あと4048バイト以上アップロードする必要があります。..... 同じftp_get関数もほぼ同じメッセージを出しています。 どうすればFTPのファイルをうまくダウンロードできますか? 環境:Apache 2.48 & PHP 5.1 phpでftpのアップロードができないのですが・・・ phpでftpコマンドを使ったアップロードができません。どこが間違っているのでしょうか。 ftpで接続してログインするところまでは間違いなくできているのですが・・・よろしくお願いします。 file.php のフォーム部分 <form enctype="multipart/form-data" action="fileupload.php" method="post"> <input type="FILE" name="File"><br> <input type="SUBMIT" value="送信"> <input type="RESET" vaiue="取消"> </form> fileupload.php のアップロード処理部分 //アップロード後のファイルの名前を仮にaaa.txtとする $file2 = "/public_html/aaa.txt"; if(isset($_REQUEST["File"])){ $file=$_REQUEST["File"]; } $ftp = ftp_connect($hostname) or die("接続失敗"); ftp_login($ftp,$user,$pass) or die("ログイン失敗"); ftp_put($ftp, $file2 , $file , FTP_ASCII) or die("アップロード失敗"); ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム サーバーに負荷の掛けないファイルアップロード方法 ファイルをアップロードを行う際に負荷のかからない方法を調べています。 AとBの二種類のサーバーがあり、AサーバーにあるWebサイトから、最終的にBサーバーにファイルアップロードします。 Bサーバーへのアップロードをどうするかを検討しています。 Bサーバーでは、ユーザーがアップロードしたファイルを利用し、Aサーバーに加工したデータを返しています。 そこで、ユーザーがローカルにもっているファイルをアップロードする方法をAサーバーに負担が出来る限りかからないようにするにはどうすればよいか考えています。 ブラウザからアップロードするのはファイルサイズが大きくなると、PHPの設定を超えたり、サーバーへの負荷が大きくなってしまいます。 ⇒サイズが大きくなると時間がかかるのと、運用でどれほどのサイズがアップロードされるか想定ができない状態 Bサーバーに直接FTPでファイルをアップロードする ⇒ユーザーは限られたメンバーなので、権限を与えることは可能ですが、ユーザーの変更時に都度対応する必要があるのがネック 最終的にはFTPでアップロードをしてもらう方法になりますが、ブラウザから負担をかけずにアップロードする方法はないでしょうか? AサーバーにおいているWebページからBサーバーに直接アップロードをできるのが理想ですが、ブラウザからだとAサーバーにどうしてもファイルが一時的に保存されてしまうのではと思っています。 よろしくお願いいたします。 言語 PHP 5.2~ OS Ubuntu phpでファイルをアップロードできるか? phpでのファイルアップロードについて質問します。 eラーニング教材(htmlで作成)で、動画ファイルをストリーミングさせることになりました。 ウェブサーバ側へのアップロードする画面として、move_uploaded_file()やis_uploaded_file()メソッドをつかっていましたが、ストリーミングサーバ側としてFTP通信でポート20、21からのみのアップロードのみ許可されているとのことです。 ftp_put()メソッドがあるようですが、このメソッドでいいのでしょうか? またこのメソッドでポートの指定はできるのでしょうか。 サーバの知識が弱いもので、まとはずれな質問でしたらごめんなさい。 phpのバージョンは4または5です。 IE7以上のブラウザ環境を想定しています。 phpでファイルをアップロードできるか? phpでのファイルアップロードについて質問します。 再質問となりますが、実際にコードを作成してやってみてうまくいかないので、 あらためて質問させていただきました。 eラーニング教材(htmlで作成)で、動画ファイルをストリーミングさせることになりました。 ウェブサーバ側へのアップロードする画面として、move_uploaded_file()やis_uploaded_file()メソッドをつかっていましたが、ストリーミングサーバ側としてFTP通信でポート20、21からのみのアップロードのみ許可されているとのことです。 ftp_put()メソッドを使ってアップロードさせたところうまくいきません。 **************<コード>************* $ftp_server="【サーバー名】"; $ftp_user_name="【アカウント名】"; $ftp_user_pass="【パスワード】"; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if ((!$conn_id) || (!$login_result)) { echo "FTP接続に失敗しました。"; exit; } else { echo "FTP接続に成功しました。"; } ここまででFTPの接続はできているようです。 その直後に、 $local_file="【ローカルのファイルパス】"; $remote_file="【FTPサーバー上のアップロードファイルパス】"; if (!ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) { echo "FTPアップロードに失敗しました。"; exit; } else { echo "FTPアップロードに成功しました。"; } **************<コード>************* FTPアップロードに失敗します。 原因がわからなく、こまっています。 ポートの指定が必要なのでしょうか? おしえてください。 よろしくおねがいたします。 **************** FTP supportはenabled になっています。 phpのバージョンは4または5です。 IE7以上のブラウザ環境を想定しています。 FTPサーバでのアップロードができない FTPサーバをたてました。TinyFTPDです。 クライアントソフトはFFFTPです。 接続は出来ます。ダウンロードも出来ます。 しかしアップロードが出来ません。 「FFFTPエラー アップロードが出来ませんでした。 450 No privilege for operation.」と出ます。 FTPソフトのアップロードとはそもそもなんですか。 インターネットで調べたのですがよく分かりません。 テキストファイルをLANの他のコンピュータに送ることは出来ないんでしょうか。 ホストの設定で、アドレスが192.168.11.58という プライベートアドレスにしているのが悪いのでしょうか。 FTP関数について FTP関数についての質問です。 自分のHPからFTPを用いてファイルをダウンロードできるように したいため、FTPサーバに接続してファイルをダウンロードさせる ロジックを作ったのですが、うまくいきません。 というのは、私の作ったFTP処理では、サーバ上で実行されるので、 呼び出し元がサーバになり、ファイルはサーバ上にダウンロード されてしまうのです。 そこで質問なのですが、 PHPのFTP関数は、クライアントからプログラムを実行しないと クライアント側にファイルはダウンロードされないのでしょうか? PHPでFTP関数を使いたいと考えていますが、 PHPでFTP関数を使いたいと考えていますが、 いろいろ回ってみても中々使えるサーバに出会えません。 ロリポップでは設定はされているとの記事を見かけたのですが、 ドキュメントルート以下しか使えないなど不便な面が多く使うのは控えようかと考えています。 私の探し方も上手くないのでしょうか・・・。 ある程度金額は高くても良いので(~10000円) ドキュメントルートより上も操作可能で、なおかつPHPとmysqlが使え、 PHPのftp関数がデフォルトもしくは設定にて使用可能なレンタルサーバをご存知の方は お教えいただけないでしょうか? お手数ですがよろしくお願いいたします。 PHPのfsockopenを使用してファイルのアップロード方法 PHPのfsockopenを使用してファイルのアップロード方法 宜しくお願い致します。 PHPでHTTPポートなどに接続させて、POSTやGETでデータを送信できるようにする関数のfsockopenを使用して、HTMLのformを使用せずにPHPプログラムのみでサーバ上にあるファイルを別のサーバへアップロードする方法はありませんか? 文字列を送信する事はできるので、ファイルのアップもできそうなのですが、やり方がわかりません。 FTPサーバーへのアップロードのファイルサイズの上限は? FTPサーバーへファイルをアップロードをするとき、1つのファイルサイズの上限はどれくらいなのでしょうか。 サーバーの設定によるのでしょうか? サーバにhtmlファイルをアップロードしたい! 現在学校で、サーバ(Windows Server 2008 R2 Standard)へクライアント(XP)から htmlファイルをアップロードし、サーバのIIS7.0にFTPでアップロード及び表示させようと 色々なサイトで調べています。(ちなみにど素人です...) 取り急ぎサーバ側クライアント側にFTPをインストールしました。 ここから、どうクライアントのhtmlファイルをサーバ側へアップロードするのか皆目見当がつき ません。 FTP及びIISの設定や、サーバとクライアントのファイアウォールの解除など、色々な設定が あるかと思います。 アドバイス頂けませんでしょうか? よろしくお願いいたします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム FTPサーバの立て方が「???」 Javaを使っています。ファイルのアップロード/ダウンロードをしたいのでFTPサーバを立てたいのですが、よく解りません。 Apache FTP Server 1.02で構築して、起動はされているのですが、ログインでいつも許可が得られません。 どなたか、簡単に使えるFTPサーバの構築方法を教えてください。 FTPサーバの立て方が「?」 Javaを使っています。ファイルのアップロード/ダウンロードをしたいのでFTPサーバを立てたいのですが、よく解りません。 Apache FTP Server 1.02で構築して、起動はされているのですが、ログインでいつも許可が得られません。 どなたか、簡単に使えるFTPサーバの構築方法を教えてください。 FTPサーバにアップロードできない お世話になります。光プレミアムでFTPサーバを構築しているのですが 下記のような障害が発生しております。ググったのですが、根本的な 解決策が見当たりません。皆様のお知恵をお貸しください。 [回線]フレッツ光プレミアム [プロバイダ]ASAHIネット 固定IP [経路]モデム→CTU→自宅サーバ [解放ポート]1-1024番まで。 [サーバ環境]Apache2.x、vsFTPd2.04 [症状]一部ユーザーがFTPでファイルのアップロードができない。 (問題なくアップロードできるユーザーもいる。) ・FTPdのログを確認すると接続自体は成功している模様。 ・ファイルのダウンロードは問題ない。 ・1kb以下のファイルはアップロード可能な場合がある。 ・ファイルのアップロードに失敗した後、サーバ側には0バイトのファイルが作成される。 ・アップロードできないユーザーの回線キャリアやプロバイダについて規則性は見当たらない。 もし、同様の症状等を経験された方がいらっしゃったら情報を提供して頂ければ幸いです。 よろしくお願いいたしますm(._.)m PHP ftp_fput()関数について 下記の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"); ?> CentOS7 FTPアップロードについて はじめてサーバーの構築をしており、ネットで調べながら、本を読みながら構築しているのですが、FTP接続について教えて下さい。 CentOS7でFTPの設定をし、自分のパソコンのFTPソフトから接続して、サーバーのディレクトリを見ることができました(ログインできました)が、ファイルのアップロードができません。。 本を参考にすると、SELinuxを設定するとありましたので、 setsebool -P ftp_home_dir on のコマンドを実行しましたが、 553 Could not create file. というエラーメッセージが出て、アップロードも、ディレクトリ作成もできません。 場所は、var/www/http/ の中です。 home/ユーザー名/ の中ならファイルのアップロードもディレクトリ作成もできます。 SELINUX=enforcing を SELINUX=disabled に変えると書いてあるサイトも有りますが、その設定をすると、サーバーが動かなくなる?という記述もあったりで、できたら他の方法がないのかなと思っていますが、問題のない方法でFTPアップロードをするやり方はありませんでしょうか。 教えて下さい。 FTPでアップロードできません。 こんばんわ。1つサーバーを借りてFTPをほかのパソコンから接続してファイルをアップロードすることは可能でしょうか? 1つのサーバーに2人が別のパソコンで接続するということです。 IDを共有するということでもあります。 私はFTPを1度使ったことがあり難なくアップロードできたのですが、 相方のほうがFTPに不慣れなせいないのか、そもそも接続そのものが不可能かわからないまま作業が滞っています。(アップロードできない) 相方の確認できる内容としては ・htmlのファイルはある。 ・ホスト名。ユーザ名。PWは成功した(らしい) ファイルを選んでいざアップロードしようとすると青い矢印が灰色のままでアップロードできない事態ということでもあります。 私自身がもってるできるだけの対処 ・FTPを閉じる ・FTPをアクセスしない ・FTPでUPしたページをデリート をしたのですが、改善せず。 どうすれば改善できるでしょうか? アドバイス等、ささいなことでもかまいません。回答よろしくおねがいします。 FTPで新規アップロードファイルの日付の確認 FTPで間違っていらないファイルを大量にアップロードしてしまったのですが、 その余計なファイルを削除したいため、 アップロードした日付でファイルを確認したりする方法はありますでしょうか? どうかご教授お願いします。 win2000のApacheサーバーにFTP win2000proにApache1.3.26を入れてイントラネットのサーバーを作っています。 ファイルやフォルダを共有するためFTPで接続できるようにしたいのですが(PHPのファイルアップロードではフォルダを作ったりできないので)、どうやっていいのかまったく見当がつきません。 FTPで接続できる方法を教えてください。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。 無事解決いたしました。