使用cURL传输图像

时间:2010-08-16 14:34:15

标签: php curl

我有2台服务器。我想用cURL将文件从一台服务器传输到另一台服务器。有人能告诉我一个很好的例子吗?我应该给cURL什么选择.....

THX。

3 个答案:

答案 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)