PHP-ftp_put():文件不存在-但是存在吗? [英] PHP - ftp_put(): File does not exist - but it does?

查看:107
本文介绍了PHP-ftp_put():文件不存在-但是存在吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用ftp_put()上传文件,它似乎没有找到路径,它已经在CLI上运行,并且将在cron中进行调度

I try to upload a file with ftp_put(), it does not seem to find the path while it's there, it's ran on the CLI and will be scheduled in a cron

[root@***** v1]# php cron_daily.php
[PREPROD][INFO] Creating file '/somepath/uploads/billingExport.pdf'
[PREPROD][WARNING] ftp_put(): File does not exist.  err:2 '/somepath/cron_billing.php' [141]
Could not upload file '/somepath/uploads/billingExport.pdf'

文件在那里,应该可以访问:

the file is there and should be accessible:

[root@***** v1]# ls -lha /somepath/uploads/billingExport.pdf
-rw-r-----. 1 root root 184 Oct 19 12:44 /somepath/uploads/billingExport.pdf

代码:

$conn_id = ftp_connect($ftp_server);
if (!$conn_id)
{
    FLog("ftp_connect could not connect to FTP '".$ftp_server."'");
}
else
{
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    if (!$login_result)
    {
        FLog("Could not login to FTP with user '".$ftp_user_name."'");
    }
    else
    {
        if(!ftp_pasv($conn_id, true))
        {
            FLog("Could not switch to passive mode");
        }
        else if (ftp_put($conn_id, $fileName, LOCAL_FOLDER."/billingExport.pdf", FTP_ASCII)) 
        {
            echo "File '".$fileName."' uploaded";
        } 
        else {
            echo "Could not upload file '".$fileName."'";
        }
        ftp_close($conn_id);
    }
}

任何帮助表示赞赏

谢谢

rh-php70.x86_64                2.3-1.el7           @repo.php7-MAriadb10
rh-php70-php.x86_64            7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-cli.x86_64        7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-common.x86_64     7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-json.x86_64       7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-mbstring.x86_64   7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-mysqlnd.x86_64    7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-pdo.x86_64        7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-pear.noarch       1:1.10.1-3.el7      @repo.php7-MAriadb10
rh-php70-php-process.x86_64    7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-xml.x86_64        7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-php-zip.x86_64        7.0.10-2.el7        @repo.php7-MAriadb10
rh-php70-runtime.x86_64        2.3-1.el7           @repo.php7-MAriadb10

推荐答案

这是一个php问题

错误与远程fs相关

我添加了一个目录,它可以正常工作

I added a directory and it worked

if(!file_exists(LOCAL_FOLDER."/billingExport.pdf"))
{
    FLog("File '".LOCAL_FOLDER."/billingExport.pdf"."' does not exist");
}
else
{
    $ftp_server="XXXX";
    if($phase!=PHASE_PROD)
    {
        $ftp_user_name="YYY";
        $ftp_user_pass="XXXXX";
    }
    else
    {   
        $ftp_user_name="YYY";
        $ftp_user_pass="XXX";
    }

    $conn_id = ftp_connect($ftp_server);
    if (!$conn_id)
    {
        FLog("ftp_connect could not connect to FTP '".$ftp_server."'");
    }
    else
    {
        $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
        if (!$login_result)
        {
            FLog("Could not login to FTP with user '".$ftp_user_name."'");
        }
        else
        {
            if(!ftp_pasv($conn_id, true))
            {
                FLog("Could not switch to passive mode");
            }
            else if (ftp_put($conn_id, $remoteFileName, $localFileName, FTP_ASCII)) 
            {
                FLog("File '".$localFileName."' uploaded");
            } 
            else {
                Flog("Could not upload file '".$localFileName."'");
            }
            ftp_close($conn_id);
       }
    }
}

这篇关于PHP-ftp_put():文件不存在-但是存在吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆