gpt4 book ai didi

PHP读取另一个扩展名的MP4文件

转载 作者:行者123 更新时间:2023-12-05 03:34:54 25 4
gpt4 key购买 nike

我在一家博物馆工作,我们的网站上有很多 .MP4 视频。我将它们的扩展名更改为 .MUS 以使其更难下载(大多数人不知道如何右键单击该网页,单击 <video> 标签下载它然后重命名)。视频显示正常。它看起来像这样:

<video width='640px' height='480px' controls='controls' />
<source type='video/mp4' src='dinos.mus'> ◄█■■■
</video>

现在我将视频移动到 WWW 之外的 protected 目录,然后我使用 PHP 读取它们,如下所示:

<video width='640px' height='480px' controls='controls' />
<source type='video/mp4' src='open_file.php?file=dinos.mp4'> ◄█■■■
</video>

这是 open_file.php :

header( "Content-Type: video/mp4" );
readfile( "/home/" . $_GET["file"] );

它工作正常...直到我将扩展名从 .MP4 更改为 .MUS,然后视频不再显示:

<video width='640px' height='480px' controls='controls' />
<source type='video/mp4' src='open_file.php?file=dinos.mus'> ◄█■■■
</video>

我不明白为什么:这是同一个文件,我用 PHP 发送了正确的 header ,<video>标签具有正确的类型。实际上,如果没有 PHP <video>标记在 .MUS 文件中工作正常,因此问题似乎出在 PHP 上。

我的问题是:如何读取 .MUS 文件并将它们发送以被解释为 MP4?

最佳答案

我已经测试了你的代码,Content-Type: video/mp4 和 readfile 应该可以工作(它应该与文件扩展名无关,想象一下如果你从 BLOB 中获取文件数据,它应该也可以工作)

但是如果home目录是相对的,那么请使用“./home/”而不是“/home/”

确保正确设置了目录/文件权限。假设确保主目录是可执行的(主目录为 chmod a+x)并且 mus 文件是可读的(MUS 文件为 chmod a+r)

所以这个 open_file.php 有效:

<?php
header("Content-Type: video/mp4");
readfile("./home/" . $_GET["file"]);
?>

在此处查看工作示例:

http://www.createchhk.com/SO/testSO20Nov2021b.php

代码如下:

<video width='640px' height='480px' controls='controls' />
<source type='video/mp4' src='open_file.php?file=test2.mus'>
</video>

关于PHP读取另一个扩展名的MP4文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70041563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com