使用PHP下载异地m4v

时间:2012-06-03 22:49:42

标签: php video curl download

我想从非现场服务器下载文件。如果出现的话,我确实同意这样做:)我所拥有的是一个cURL脚本,它可以获取标题和文件名,但无论出于什么原因我无法将文件传输到我的服务器。

$downloadvUrl="$videos";
$file = "downloads";
$fileName=$downloadvUrl;
$header = array(
"Accept-Encoding: gzip,deflate",
"Accept-Charset: utf-8;q=0.7,*;q=0.7",
"Connection: close"
);
$file2 = dirname(__file__).'/'.videos.'.m4v';
$curlObj=curl_init();
curl_setopt($curlObj, CURLOPT_HTTPHEADER, $header);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlObj, CURLOPT_HEADER, false);
curl_setopt($curlObj, CURLOPT_USERAGENT, $useragent);
curl_setopt($curlObj, CURLOPT_CONNECTTIMEOUT, 999);
curl_setopt($curlObj, CURLOPT_TIMEOUT, 9999);
curl_setopt($curlObj, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($curlObj, CURLOPT_URL, $downloadvUrl);
$response = curl_exec($curlObj);
$return = false;
if(!curl_errno($curlObj)) {
file_put_contents($file2, $response);
}

2 个答案:

答案 0 :(得分:0)

我实际上是通过让它变得更简单来实现它。

<?php
$i = 0;
while(file_exists($target_path).$i) {
$i++;
}
$ch = curl_init("$matches[1]");
$fp = fopen("1.m4v", "w");
if (file_exists($fp)) {
    echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?> 

我怎样才能获得它,以便使用不同的名称上传文件?

答案 1 :(得分:0)

您可以添加:

$fh = fopen('/tmp/foo', 'w'); 
curl_setopt($ch, CURLOPT_FILE, $fh);

将/ tmp / foo更改为您希望保存到的文件。