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
代替。实际上并不需要它。