Может быть, это поможет вам решить вопрос
function remote_merge($sourceurl,$targetftp){
$ch = curl_init ($sourceurl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
$tempfile = "/path/to/temp/".basename(parse_url($sourceurl, PHP_URL_PATH));
if(file_exists($tempfile)){
unlink($tempfile);
}
$fp = fopen($tempfile,'x');
fwrite($fp, $rawdata);
fclose($fp);
$ch = curl_init();
$fp = fopen($tempfile, "rb");
curl_setopt($ch, CURLOPT_URL, $targetftp);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tempfile));
$error = curl_exec($ch);
// check $error here to see if it did fine or not!
curl_close($ch);
}
Используйте это, чтобы опробовать функцию remote_merge
$sourceurls = array(
"http://site.com/1.pdf",
"http://site.com/234234234.png",
"http://site.com/archive.zip",
"http://site.com/1f41f.anyformat",
"http://site.com/file.txt"
);
foreach($sourceurl as $sourceurls){
$filename = basename(parse_url($sourceurl, PHP_URL_PATH);
$targetftp = "ftp://${ftpuser}:${ftppasswd}@${ftpserver}${ftppath}/$filename";
remote_merge($sourceurl,$targetftp)
}