我有2台服务器。我想用cURL将文件从一台服务器传输到另一台服务器。有人能告诉我一个很好的例子吗?我应该给cURL什么选择.....
THX。
答案 0 :(得分:2)
有大量资源,这里有几个:
http://dtbaker.com.au/random-bits/uploading-a-file-using-curl-in-php.html
http://www.phpclasses.org/package/3753-PHP-Upload-files-via-HTTP-POST-using-Curl.html
从未使用过它们,也没有必要。但是应该帮助你开始。
答案 1 :(得分:1)
sender.php
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
// true to return the transfer as a string of the return value
// of 'curl_exec' instead of outputting it directly
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/receiver.php');
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
'euro' => '@eurodance.pls',
'flush' => '@flush_next.png',
'first_name' => 'Vadim'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
print_r($response);
receiver.php
if(isset($_FILES)){
$temp_file_name = $_FILES['euro']['tmp_name'];
$original_file_name = $_FILES['euro']['name'];
// Find file extention
$ext = explode ('.', $original_file_name);
$ext = $ext [count ($ext) - 1];
// Remove the extention from the original file name
$file_name = str_replace ($ext, '', $original_file_name);
$new_name = '_'.$file_name . $ext;
//echo $file_name ." ". $ext;
if (move_uploaded_file ($temp_file_name, $new_name)) {
echo "success";
} else {
echo "error";
}
}
if(isset($_FILES)){
$temp_file_name = $_FILES['flush']['tmp_name'];
$original_file_name = $_FILES['flush']['name'];
// Find file extention
$ext = explode ('.', $original_file_name);
$ext = $ext [count ($ext) - 1];
// Remove the extention from the original file name
$file_name = str_replace ($ext, '', $original_file_name);
$new_name = '_'.$file_name . $ext;
//echo $file_name ." ". $ext;
if (move_uploaded_file ($temp_file_name, $new_name)) {
echo "success";
} else {
echo "error";
}
}
答案 2 :(得分:0)
使用cURL似乎就像使用错误的工具(即当你有锤子,每个问题看起来像一个钉子)根据你给出的东西,为什么不看SCP / SFTP甚至rsync如果前者不是足够灵活。如果没有,您必须在源服务器上托管该文件并启动cURL以请求该文件(即通过http)