Php header()用户代理更改

时间:2017-07-28 18:01:46

标签: php header user-agent

$file_name = $_GET['title'];
$file_url = $_GET['url'] . $file_name;
header('Content-Type: video/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url);
exit;

我正在使用此代码从我的网站下载从其他网站获取的文件。

如果我的网址如下:

https://www.example.com/video_download.php?title=video.mp4&url=http://googlevideo.com/video/download/223689/289048

(适用例)

因此,它通过从http://www.googlevideo.com/video/play/221589获取视频文件到我的网站开始下载。

但我的问题是,如果此人使用PC,则可以访问该文件。

我可以使用header()更改用户代理吗? 可能吗? 因此,如果我将用户代理更改为PC用户代理,则可以从移动设备下载它!

2 个答案:

答案 0 :(得分:0)

对不起,用户代理与readfile()函数无关。 Readfile()只会将原始文件输入到您的浏览器中。对于例如有用通过PHP将图像渲染到客户端,而不必公开真实的文件名。

实际上,可以使用readfile()将视频呈现给客户端,但使用HTML5视频标记可以显着提高性能。这也将提供更好的移动支持。

希望这会对你有所帮助,

答案 1 :(得分:0)

您可以使用stream_compy_to_stream

$video = fopen($file_url);
$file = fopen('videos/' . $title . '.mp4', 'w');
stream_copy_to_stream($video, $file); //copy it to the file
fclose($video);
fclose($file);

我写了一个下载youtube视频文件的课程。你可以找到它here