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