问题描述
|
我试图通过FTP用CURL上传文件。但是我的用户名有问题,在我的主机中,所有FTP用户名均为user@site.com,因此在尝试上传时出现以下错误:
卷曲错误:无法解析主机\'site.com:password@site.com \'
这是代码:
$ftpuser = \'uploader@mysite.com\';
$ftppass = \"blablabla\";
$ftppath = \"mysite.com/\";
$ftpurl = \"ftp://\".$ftpuser.\":\".$ftppass.\"@\".$ftppath;
有人可以告诉我如何传递用户名来解决问题。
解决方法
两件事情:
通过使用
urlencode
转换非安全字符,您应该能够解决@
问题。
我相信,最好将CURLOPT_USERPWD
选项与curl_setopt
一起使用来设置用户名和密码对。
所以:
<?php
$ftpuser = urlencode(\'uploader@mysite.com\');
$ftppass = urlencode(\'blablabla\');
$ftppath = \'mysite.com/\';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,\'ftp://\' . $ftppath);
curl_setopt($ch,CURLOPT_USERPWD,$ftpuser . \':\' . $ftppass);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec();
,您是否可以分别给curl用户名和密码(而不是全部作为URL的一部分),以帮助它更正确地理解数据。