Php 使用CURL在服务器的特定文件夹中下载MP4视频

Php 使用CURL在服务器的特定文件夹中下载MP4视频,php,curl,video,ffmpeg,Php,Curl,Video,Ffmpeg,我正试图下载特定文件夹中带有PHP代码的.MP4扩展名文件我的代码仅适用于.MP4扩展名,但我无法下载带有此代码的URL MP4视频 我在试这个密码 function download ($url, $location){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,

我正试图下载特定文件夹中带有
PHP代码的
.MP4扩展名
文件
我的代码仅适用于.MP4扩展名,但我无法下载带有此代码的URL MP4视频

我在试这个密码

    function download ($url, $location){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSLVERSION,3);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec ($ch);
    $error = curl_error($ch);
    curl_close ($ch);


    $file = fopen($location, "wb");
    fwrite($file, $data);
    fclose($file);
    return 'done';
    }
    ?>
    <!DOCTYPE html>
    <html>
    <body>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    Video URL (Only With .MP4 Extension): 
    <input type="text" name="url" placeholder="Video URL Here" required/><br>
    Video ID Number:
    <input type="text" name="id" placeholder="Video ID Nmber eg:1,2,3" required/><br>
    <input type="submit"/>
    </form>
    </body>
    </html>
    <?php 
    @$url = $_POST['url'];
    @$ID = $_POST['id'];
    $SCRIPT_DIR = dirname(__FILE__);
    $TEMP_DIR = $SCRIPT_DIR . '/videos/'; 
    $location = $TEMP_DIR . $ID . '.mp4';
    if(isset($_POST['url'])){

        echo download($url, $location);

    }
函数下载($url,$location){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
卷曲设置($ch,卷曲设置,3);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
$data=curl\u exec($ch);
$error=curl\u error($ch);
卷曲关闭($ch);
$file=fopen($location,“wb”);
fwrite($file,$data);
fclose($文件);
返回“完成”;
}
?>

我以前曾使用此代码从同一来源下载视频:

function download ($url, $location){
  $fp = fopen($location, "w+");
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_TIMEOUT, 60);
  curl_setopt($ch, CURLOPT_FILE, $fp);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_exec($ch);
  curl_close($ch);
  fclose($fp);

  return 'done';
}

@hassaan Hi Bro你能检查一下吗?你是从运行此代码的同一服务器/IP确定此位置的吗?@alistaircol Hi感谢你的评论我在localhost Xamp上运行此代码可能是令牌/链接已过期。没有太多时间使令牌codecurl_setopt($ch,CURLOPT_TIMEOUT,60)过期;这是什么意思60分钟内下载我的视频,对吗?如果视频需要更多时间下载?您可以将其删除,或者使用
CURLOPT_CONNECTTIMEOUT
代替。实际上并不需要它。