使用PHP curl将URL上传为文件

时间:2014-02-28 06:18:22

标签: php curl

我有托管在CDN上的图片,我想通过他们的API将该图片上传到其他系统。通常我会使用curl并在文件前放一个@字符进行上传。由于这是一个URL,因为它希望文件是本地的,所以不起作用。我不想先将它复制到本地,因为文件可能是视频,而且可能很耗时。

似乎应该有一种方法可以用PHP卷曲来做到这一点。我很乐意使用套接字,但我不确定如何模拟curl的提交方式。

1 个答案:

答案 0 :(得分:0)

<?php

$save_file_url =  file_get_contents($your_files_CDN_file_URL);

$fp = fopen('test','w');
fwrite($fp,$save_file_url);
$save_file = realpath('test') ;

$url = "http://URL_TO_SEND_FILE/get_file.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
    "file_is_this"=> "@".$save_file,
    "app"=>'test'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);

?>

您将收到get_file.php文件。