我在PHP中使用cURL将文件隐式传输到服务器,但是出现以下错误:
"Could not upload file. cURL Error: [35] - error:1408F10B:SSL routines:ssl3_get_record:wrong version number"
在我的代码中,我指定了SSL v6,但它似乎仍在尝试使用SSL v3。这些是我在curl_setopt
中设置的选项。
$options = array(
CURLOPT_USERPWD => $username . ':' . $password,
CURLOPT_SSL_VERIFYPEER => false, // don't verify SSL
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_FTP_SSL => CURLFTPSSL_ALL, // require SSL For both control and data connections
CURLOPT_FTPSSLAUTH => CURLFTPAUTH_DEFAULT, // let cURL choose the FTP authentication method (either SSL or TLS)
CURLOPT_UPLOAD => true,
CURLOPT_PORT => $port,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2, //https://stackoverflow.com/questions/30145089/tls-1-2-not-working-in-curl
);
这是我在计算机上运行curl --version时的输出。
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
我确定FTP凭据在FileZilla中正常工作时是正确的。