2010-08-16 46 views
4

我有2台服务器。我想用cURL将文件从一台服务器传输到另一台服务器。任何人都可以告诉我一个很好的例子吗?我应该给cURL什么选项.....使用cURL的Tranfer图像

Thx。

回答

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"; 
    } 

} 
0

根据你给出的内容,使用cURL好像使用了错误的工具(即当你有一把锤子,每个问题都看起来像钉子),为什么不看SCP/SFTP甚至是rsync?不够灵活。如果没有,你必须拥有该文件的源服务器上,并开始卷曲请求文件(即通过HTTP)