Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP卷曲下载_Php_Curl - Fatal编程技术网

PHP卷曲下载

PHP卷曲下载,php,curl,Php,Curl,我正在使用Curl从本地下载文件 function get_data($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $data = curl_exec($ch); curl_clo

我正在使用Curl从本地下载文件

function get_data($url)
{
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  header("Content-Type: application/force-download"); 
  header("Content-disposition: attachment; filename=zipfile.tar.gz");
  echo $data;
}

$rt = get_data('http://slackbuilds.org/slackbuilds/13.37/multimedia/umplayer.tar.gz');

这会下载文件,但我无法打开。是否必须提及正确的内容类型?我使用这个脚本制作视频,所以我尝试了内容类型:Video,但仍然不合适

您可能缺少
标题(“内容传输编码:二进制”)

将CURLOPT_BINARYTRANSFER设置为TRUE并更改内容类型

<?php

$url = "http://slackbuilds.org/slackbuilds/13.37/multimedia/umplayer.tar.gz";
$opts = array(
  CURLOPT_URL =>$url,
  CURLINFO_CONTENT_TYPE => "text/xml",
  CURLOPT_BINARYTRANSFER => TRUE,
  CURLOPT_RETURNTRANSFER => TRUE
);

$ch = curl_init();
curl_setopt_array($ch, $opts);
$data = curl_exec($ch);
$info = curl_getinfo($ch); 
curl_close($ch);

header("Content-Type: application/x-gzip"); 
header("Content-disposition: attachment; filename=zipfile.tar.gz");

echo $data;
?>
TRUE,
CURLOPT_RETURNTRANSFER=>TRUE
);
$ch=curl_init();
curl_setopt_数组($ch,$opts);
$data=curl\u exec($ch);
$info=curl\u getinfo($ch);
卷曲关闭($ch);
标题(“内容类型:应用程序/x-gzip”);
标题(“内容配置:附件;文件名=zipfile.tar.gz”);
回波数据;
?>

这可能有点傻,但我必须问:你是否在任何地方打印/回显
$rt
?你确定在它之前/之后没有打印更多的内容吗?是的,在标题之后,我回写了工作正常的itok,我在寻找视频文件,所以我对视频进行了适当的更改,为工作正常的内容类型添加了视频/mp4。还有一个问题,如果视频大小增加(比如400MB),它会占用PHP内存,是吗?是的,它会占用您的内存,因为您使用的是
RETURNTRANSFER
,所以它会返回到驻留在内存中的变量中。