2

我正在尝试将简单的 cURL 文件从一台服务器上传到另一台服务器。问题是我从 cUrl 错误代码中得到错误 #3:URL 格式不正确。

我已将 url 复制到我的浏览器中并毫无问题地登录到 ftp 站点。我还验证了正确的格式,并在网上和这个网站上搜索了答案,但没有成功。

这是代码:

$ch = curl_init();

$localfile = '/home/httpd/vhosts/homeserver.com/httpdocs/admin.php';  
echo $localfile;  //This reads back to proper path to the file
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://username:password@199.38.215.1xx/');
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) {
  $error = 'File uploaded succesfully.';
} else {
  $error  = 'Upload error:'.$error_no ;//Error codes explained here http://curl.haxx.se/libcurl/c/libcurl-errors.html';
}
echo $error;

我也试过这个:

curl_setopt($ch, CURLOPT_URL, 'ftp://199.38.215.1xx/');
curl_setopt($ch, CURLOPT_USERPWD, 'username:password');

我仍然收到错误#3。

有任何想法吗?

4

1 回答 1

0

您的远程 URL 需要包含目标文件的路径和名称,如本示例所示

<?php
// FTP upload to a remote site Written by Daniel Stenberg
// original found at http://curl.haxx.se/libcurl/php/examples/ftpupload.html
//
// A simple PHP/CURL FTP upload to a remote site
//

$localfile = "me-and-my-dog.jpg";
$ftpserver = "ftp.mysite.com";
$ftppath   = "/path/to";
$ftpuser   = "myname";
$ftppass   = "mypass";

$remoteurl = "ftp://${ftpuser}:${ftppasswd}@${ftpserver}${ftppath}/${localfile}";

$ch = curl_init();

$fp = fopen($localfile, "rb");

// we upload a JPEG image
curl_setopt($ch, CURLOPT_URL, $remoteurl);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);

// set size of the image, which isn't _mandatory_ but helps libcurl to do
// extra error checking on the upload.
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));

$error = curl_exec($ch);

// check $error here to see if it did fine or not!

curl_close($ch); 
?>
于 2012-06-12T18:13:15.150 回答