- 締切済み
PHPのFTP関数ftp_fgetエラーに関する疑問
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- php504
- ベストアンサー率42% (926/2160)
PHPのエラーは英語のはずですが実際にその日本語のメッセージが表示されているのでしょうか。
関連するQ&A
- phpでFTP関数を有効にする方法
PHPでFTPサーバにファイルをアップロードしたいんですが、うまくいきません。 接続すらできないので、もしやと思いphp info()で確認したところ、「ftpsupport enable」と表示されないとftp関数が実行されないのではないかと思っています。 ftpsupportを有効にするにはphp.iniのどこを変えればよいのでしょうか。色々調べてみたのですが、見つけることができませんでした。 よろしくお願いします。
- ベストアンサー
- PHP
- phpのftp_get()でエラーが出ます。
今回phpを使ってftp関数であるftp_getを実行してみたところ【Warning: ftp_get(): Error opening】が出てきました。 サイトで調べた結果、パスの指定のミスかパーミッションが原因だと言うことがわかりました。 それから小一時間あれこれ試してみましたがダメでした・・・。 そこで今度はperlを使って同じ内容のスクリプトを書いてみると成功しました。 どなたかphpの方ではなぜ正しく動作出来ないのかをご教示ください。 以下はphpとperlのスクリプトです。 =========================================================================== <?php $FTPSERVER = "!!!"; $FTPUSER = "@@@"; $FTPPASSWORD = "***"; //ftpサーバに接続 $ftp = ftp_connect($FTPSERVER); //ユーザログイン ftp_login($ftp, $FTPUSER, $FTPPASSWORD); ftp_pasv($ftp, true); $srverfile = "test.txt"; $localfile = "data1.txt"; ftp_get($ftp, $localfile, $srverfile , FTP_BINARY); ftp_quit($ftp); ?> ============================================================================ #!/usr/local/bin/perl use Net::FTP; my $host = '!!!'; # 接続先 my $user = '@@@'; # FTPのユーザ my $pass = '***'; # FTPのパスワード my $remote_file = 'test.txt'; # リモートのファイル(これを取得) my $local_file = 'data1.txt'; # ローカルファイル(ここに保存) my $ftp = Net::FTP->new($host) or die "can not connection: $@"; $ftp->login($user, $pass) or die $ftp->message; # ログイン $ftp->binary; # バイナリモードに変更 $ftp->get($remote_file, $local_file) or warn $ftp->message; # ファイル取得 $ftp->quit; # 終了
- 締切済み
- PHP
- phpのftp関数でサーバーから他のサーバーにファイルをアップロードする方法
phpのftp関数でサーバーから他のサーバーにファイルをアップロードする方法が 上手くいかずに困っております。 どなたかご教授ください。 宜しくお願いいたします。
- ベストアンサー
- PHP
- 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"); ?>
- ベストアンサー
- PHP
- ftp_getについて(バージョン4.1.2)
上記のバージョンでftp_getをしようとすると、下記のようにワーニングがでてしまいます。 Warning: ftp_get: in また、ftp_closeも使えず、ftp_quitに変更しました。 何故このようなことがおこるのでしょうか? 書式は $cn = ftp_fget($conn_id, $fp, "./".$filepath_log[$i],FTP_BINARY);
- ベストアンサー
- PHP
- FTPサーバの立て方が「???」
Javaを使っています。ファイルのアップロード/ダウンロードをしたいのでFTPサーバを立てたいのですが、よく解りません。 Apache FTP Server 1.02で構築して、起動はされているのですが、ログインでいつも許可が得られません。 どなたか、簡単に使えるFTPサーバの構築方法を教えてください。
- 締切済み
- Linux系OS
- FTPサーバの立て方が「?」
Javaを使っています。ファイルのアップロード/ダウンロードをしたいのでFTPサーバを立てたいのですが、よく解りません。 Apache FTP Server 1.02で構築して、起動はされているのですが、ログインでいつも許可が得られません。 どなたか、簡単に使えるFTPサーバの構築方法を教えてください。
- 締切済み
- Java
- PHPでFTP関数を使いたいと考えていますが、
PHPでFTP関数を使いたいと考えていますが、 いろいろ回ってみても中々使えるサーバに出会えません。 ロリポップでは設定はされているとの記事を見かけたのですが、 ドキュメントルート以下しか使えないなど不便な面が多く使うのは控えようかと考えています。 私の探し方も上手くないのでしょうか・・・。 ある程度金額は高くても良いので(~10000円) ドキュメントルートより上も操作可能で、なおかつPHPとmysqlが使え、 PHPのftp関数がデフォルトもしくは設定にて使用可能なレンタルサーバをご存知の方は お教えいただけないでしょうか? お手数ですがよろしくお願いいたします。
- 締切済み
- ハードウェア・サーバー
- PHP4.0.6をインストールして使いたいのですが・・・
借りているサーバーがPHP4.0.6のため、PHP4.0.6とApacheをインストールしてローカルテストを行おうと考えています。 まず、Apache2とPHP4.0.6をダウンロードして、それぞれインストールしたのですが、php4apache2.dllがPHP4.0.6に入ってなかったため、Apache1.3.35をダウンロードし、インストールしなおしました。 すると今度は、php_mbstring.dllがないらしく、マルチバイト文字列関係の関数が使えません。 そこで素人処方でPHP4.4.2をダウンロードし、その中に入っているphp_mbstring.dllをextensionsフォルダにいれたもののdllから「php_mbstring.dllがみつかりません」のような趣旨のメッセージが出て使えません。 いろいろやってみたのですが、正直八方塞の状態です。 ローカルテストで、PHP4.0.6でマルチバイト文字列関係の関数をつかうことはできないでしょうか?(サーバー上ではつかえるのですが・・・)
- ベストアンサー
- PHP
補足
さっそくのご回答ありがとうございました。問題はFTPサーバ側の権限設定が間違ったことを判明しました。