【问题标题】:The file is not being generated in the remote directory (ftp)该文件未在远程目录 (ftp) 中生成
【发布时间】:2021-03-07 22:24:11
【问题描述】:

我能够正常连接到 filezilla (ftp)。但是ftp_fput () 方法的返回返回 false。这意味着您无法上传文件。

这是我的代码:

$server = "host.host.ws";
$user = "username";
$pass = "password";
// call function
$conn = uploadFTP($server, $user, $pass, $local_file, $remote_file);
    
function uploadFTP($server, $username, $password, $local_file, $remote_file) {
    
    $connection = ftp_connect($server);
    if (@ftp_login($connection, $username, $password)){
        
        ftp_pasv($connection, true) or die("Unable switch to passive mode");
                            
        $fp = fopen('php://temp', 'r+');            
        fwrite($fp, 'content within the file');
        rewind($fp);

        // the file is not generated in the remote directory: /App/data/Json/File.json
        if (ftp_fput($connection, '/App/data/Json/File.json', $fp, FTP_ASCII)) 
            echo 'generated file!';

        fclose($fp);
        ftp_close($connection);
        return true;

    } else {
        return false;
    }   

该文件只会在显示消息时生成:“已生成文件!”,但事实并非如此。

代码没有显示任何明确的错误,我的问题是,为什么这段代码没有在目录中生成文件?你能分享一下这个问题的解决方案吗?

【问题讨论】:

  • 向我们显示来自任何命令行/GUI FTP 客户端的日志文件,以便成功上传相同的文件。 + 向我们展示您如何检查“这不是正在发生的事情”

标签: php ftp


【解决方案1】:

也许 FTP 允许访问根目录,您需要提供完整路径 /var/www/App/data/Json/File.json

ftp_fput($connection, '/var/www/App/data/Json/File.json', $fp, FTP_ASCII)

该错误不可见,因为已启用抑制。 这里象征性地去掉“@”并使用error_get_last()来查看错误信息

if (ftp_login($connection, $username, $password)) {
    echo 'Connected!';
    
    
    if (ftp_fput($connection, '/App/data/Json/File.json', $fp, FTP_ASCII)) {
        echo 'generated file!';
    } else {
        print_r(error_get_last());
    }
} else {
    return false;
}

你需要确保在服务器上创建了目录结构/App/data/Json/如果没有,则创建它

我认为它会很有用 php ftp make multiple directories

【讨论】:

  • 您好,感谢您的回复。我删除了'@',它没有显示错误。我能够正常连接到该部分。问题是 ftp_fput 方法,它返回 false。
  • 你需要确保在服务器上创建了目录结构
  • 是的,结构体/App/data/Json是在服务端定义的
  • 添加了错误输出 error_get_last()。也许 FTP 可以访问根目录,您需要指定 /var/www/App/data/Json/File.json
  • 答案无法解决问题。上面评论中的路径建议是否解决了您的问题(似乎有可能)?然后让我们知道,以便@SeniorFullstack 可以更新答案以使其有意义。否则这个问题没有实际意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-08
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 2011-08-10
  • 2022-11-25
相关资源
最近更新 更多