PHP隐式 curl 文件上传在本地工作,但不在生产中

hc8w905p  于 2023-02-23  发布在  PHP
关注(0)|答案(1)|浏览(150)

当我在我的电脑上测试这段代码时,一切正常,但是在prod中,上传到远程服务器的文件是空的。什么样的php/server配置会导致这个问题?

static function implicit_ftp($srcFile, $dstFile, $host, $port = 21, $username = null, $password = null, $acc = null)
    {
        $curlhandle = curl_init();
        curl_reset($curlhandle);
        curl_setopt($curlhandle, CURLOPT_URL, 'ftps://' . $host . '/' . $dstFile);
        curl_setopt($curlhandle, CURLOPT_USERPWD, $username . ':' . $password);
        curl_setopt($curlhandle, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curlhandle, CURLOPT_PORT, $port);
        curl_setopt($curlhandle, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curlhandle, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
        curl_setopt($curlhandle, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);

        $fp = fopen($srcFile, 'r');
        curl_setopt($curlhandle, CURLOPT_UPLOAD, 1);
        curl_setopt($curlhandle, CURLOPT_INFILESIZE, filesize($srcFile));
        curl_setopt($curlhandle, CURLOPT_INFILE, $fp);

        curl_exec($curlhandle);
        $err = curl_error($curlhandle);
    }
wfauudbj

wfauudbj1#

首先仔细检查php扩展curl是否正在运行,为此,只需创建一个info.php文件并插入以下代码:phpinfo()。访问该网站,并使用CTRL+F和搜索curl。
如果curl被启用,你可能会面临一个权限问题。因为我不知道你使用的是什么类型的web服务器,我现在就假设它是Apache。你需要写和读权限。要设置这些,请看下面的线程:Apache Give Permission
因为我可以在你的线程中看到一个ftp标签,你也可以使用一个ftp客户端,简单地右键单击你想插入你的图像的文件夹,然后从那里进入权限来应用它们。

相关问题