加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

通过PHP的cURL将文件上传到FTP,错误,因为密码包含’<'字

发布时间:2020-12-13 17:40:50 所属栏目:PHP教程 来源:网络整理
导读:我一直在使用一段漂亮的 PHP代码通过cURL将文件上传到FTP. 它一直很好,直到今天. 当我执行它时,它返回一个卷曲错误#3 解释错误:CURLE_URL_MALFORMAT(3):URL格式不正确. 我认为这是因为密码包含特殊字符. 密码包含’' 例如R3lHK2A9.1 此代码适用于以往密码
我一直在使用一段漂亮的 PHP代码通过cURL将文件上传到FTP.
它一直很好,直到今天.

当我执行它时,它返回一个卷曲错误#3
解释错误:CURLE_URL_MALFORMAT(3):URL格式不正确.
我认为这是因为密码包含特殊字符.
密码包含’<'
例如R3lHK2A9&.1
此代码适用于以往密码全部仅由字母和数字组成的代码.

我尝试使用escapeshellarg(),urlencode()和escapeshellcmd()来获取密码….徒劳无功.我错过了什么吗?

你能帮忙吗?

<?php
    $ch = curl_init();
    $localfile = “test.tar”;
    $fp = fopen($localfile,‘r’);

    curl_setopt($ch,CURLOPT_URL,‘ftp://username:password@ftp.domain.com/public_html/filesfromscript/’.$localfile);
    curl_setopt($ch,CURLOPT_UPLOAD,1);
    curl_setopt($ch,CURLOPT_INFILE,$fp);
    curl_setopt($ch,CURLOPT_INFILESIZE,filesize($localfile));

    curl_exec ($ch);
    $error_no = curl_errno($ch);
    curl_close ($ch);

    if ($error_no == 0) {
    $message = ‘File uploaded successfully.’;
    } else {
    $message = “File upload error: $error_no. Error codes explained here http://curl.haxx.se/libcurl/c/libcurl-errors.html”;
    }
    echo $message;
    ?>

解决方法

尝试使用CURLOPT_USERPWD选项设置身份验证凭据,而不是在URL中传递.

例如.

curl_setopt($ch,'ftp://ftp.domain.com/public_html/filesfromscript/'.$localfile);
curl_setopt($ch,CURLOPT_USERPWD,'username:pass<word');

另外(从here开始)您可以尝试对auth凭证进行百分比编码:

$username = 'username';
$password = 'pass<word';
curl_setopt($ch,'ftp://'.rawurlencode($username).':'.rawurlencode($password).'@ftp.domain.com/public_html/filesfromscript/'.$localfile);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读