php ftp_put エラーの解決策: まず「Upload/Driver/Ftp.class.php」を開き、次に「ftp_pasv($this->link,true);」メソッドを使用してパッシブ モードに切り替えます。最後に、クライアントにファイルを再アップロードするだけです。
推奨: 「PHP チュートリアル 」
PHP アップロード FTP ドライバーの ftp_put 関数のアップロード失敗の問題
2 台のサーバー (FTP サーバー用と Web サーバー用に 1 台)。
thinkphp3.2のUploadクラスを使用し、アップロードFTPドライバーを使用しているのですが、毎回ファイル保存に失敗すると表示されます。
答えを探しています。非同期と同期の両方をテストしましたが、どちらも機能しません。リモートの /tmp/ ディレクトリと ftp ディレクトリにも 777 のアクセス許可があります。
Thinkphp は非常に成熟しているはずです。その後、説明モードを含むいくつかの答えを公式ドキュメントで見つけました。
ftp サーバー アクティブ モード、ftp サーバー パッシブ モード、私は ftp_pasv($this-> ;link,true); パッシブ モードに切り替えると、クライアントはファイルをスムーズにアップロードできるようになります。
これが解決策です
Upload/Driver/Ftp.class.php sava function
public function save($file, $replace=true) { $filename = $file['rootPath']. $file['savepath'] . $file['savename']; /* 不覆盖同名文件 */ // if (!$replace && is_file($filename)) { // $this->error = '存在同名文件' . $file['savename']; // return false; // } ftp_pasv($this->link,true); ftp_pwd($this->link); $filename=$file['savename']; if (!ftp_put($this->link, $filename, $file['tmp_name'],FTP_ASCII)) { $this->error = '文件上传FTP错误!'; return false; } return true; }
以上がphp ftp_put が失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。