php - 为什么 "ftp_fget"在 php 中返回 "bind() failed: Permission denied (13)"?

标签 php ftp permission-denied

我正在尝试使用 ftp_fgetfgetcsv 函数读取远程服务器上的 csv 文件。在读取远程服务器上的文件时,我已经多次练习这个,直到现在它工作正常。

我不明白为什么 ftp_fget 会返回此错误:bind() failed: Permission denied (13)。 此外,我也找不到关于此错误消息的任何真正解释。

给我远程服务器访问权限的客户说它是 Windows Server

$distant_folder = "/myfolder/";
$filename = "myfile.csv";

$ftpstream = ftp_connect($ftp_server); 
$login = ftp_login($ftpstream, $ftp_user, $ftp_pass);

if($login){
    $tmp_handle = fopen('php://temp', 'r+');

    if (ftp_fget($ftpstream, $tmp_handle, $distant_folder.$filename, FTP_ASCII)){
        // do stuff with fgetcsv()...
    }
}

请注意,出于保密原因隐藏了 ftp 服务器变量的值。

编辑:我找到了解决方案!

我在 ftplogin()ftp_fget() 函数之间使用了 ftp_pasv($ftpstream, true);

最佳答案

你必须将连接切换到被动模式,所以你的 FTP 客户端需要一个端口来连接到 FTP 服务器。放在ftp_put()、ftp_get()、ftp_nlist()等之前例如:

ftp_pasv($connId, true);
$list = ftp_nlist($connId, ".");

关于php - 为什么 "ftp_fget"在 php 中返回 "bind() failed: Permission denied (13)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24085569/

相关文章:

php - 将可标记的人名合并到数据库中

objective-c - 通过 FTP/SFTP 解析远程 $HOME 目录

linux - Imagemagick ftp 和空间

jsf - Glassfish 拒绝访问 JSF 页面,返回 403 HTTP 响应代码

php - 使用phpmyadmin连接远程MYSQL很慢

php - Codeigniter 4 验证可选值

ssh - 连接失败。用尽了可用的身份验证方法

ubuntu - 在 ubuntu 机器中恢复 Elastic Search 快照时出现 RepositoryException

ubuntu - fopen(dbinfo.php) : failed to open stream: Permission denied Ubuntu 12. 04 LTS

php - log4php如何在日志文件中输出异常信息?