Php html页面中来自文件系统的视频

Php html页面中来自文件系统的视频,php,html,video,Php,Html,Video,我正在编写一个PHP代码,在这个代码中,我在一个html页面上的外部硬盘上显示了一些视频。Apache可以访问视频所在的文件夹 PHP代码如下所示:- <html> <?php foreach(glob('G:/path/to/videos/*') as $file) { echo $file,"\n"; // --------------> This line works and displays the video names } ?>

我正在编写一个PHP代码,在这个代码中,我在一个html页面上的外部硬盘上显示了一些视频。Apache可以访问视频所在的文件夹

PHP代码如下所示:-

<html>

<?php
foreach(glob('G:/path/to/videos/*') as $file)
{
        echo $file,"\n";   // --------------> This line works and displays the video names
}
?>

<video width="320" height="240" controls>
  <source src="G:/path/to/videos/video 1.mp4" type="video/mp4">  ----> PROBLEM lies here
</video>

</html>

---->问题就在这里
但是,在浏览器的HTML页面上显示的视频播放器不会播放任何视频


谁能告诉我我做错了什么吗?

您可以将实际的文件路径存储在数据库中,并使用php请求它。然后,您可以将文件复制到站点的临时文件夹中,并将该文件路径传递回前端,然后在前端关闭文件后触发删除功能。例如,我在我的应用程序中使用了以下代码,首先我使用变量“filepath”向一个php文件发送一个ajax请求:
copy(DOCUMENT_ROOT./”$\u REQUEST['filepath']..pdf),SITE_ROOT.TEMP_STORAGE./”$\u REQUEST['filepath'..pdf”)


因此,我在config.php文件中为所有文件的实际基本位置定义了一个DOCUMENT_ROOT。我还指定了一个SITE\u ROOT和TEMP\u存储。SITE_ROOT是指向站点的基本服务器文件路径,TEMP_STORAGE是存储文件以供查看的默认临时位置。
然后我执行以下操作:

$output=array(“location”=>SECURE_ROOT.TEMP_STORAGE.”/“$_REQUEST['filepath'..”.pdf”,“实际_path”=>SITE_ROOT.TEMP_STORAGE.”/“$_REQUEST['filepath'..pdf”)

因此,我传递文件的服务器位置和访问文件的实际URL


然后从ajax success函数访问location变量,完成后调用delete函数,将实际路径传递回php函数,并使用以下代码:

if(!unlink($_REQUEST['filepath'])){
   $response = "unable to delete file.";
}else{
   $response = "file deleted successfully.";
}
不确定这是否是最好的方法,但它确实适用于我开发的商业应用程序。而且它会对公众隐藏实际的服务器文件路径


看了我自己的答案后,似乎很困惑,哈哈。因此,如果您想进一步澄清,请告诉我。

您在访问视频文件时遇到问题。在这里,最好的解决方案是将所有文件移动到单独的文件夹,如web服务器中的视频(WAMP/LAMP)位置,并按如下方式指向这些文件

<html>


<video width="320" height="240" controls>

  <source src="videos/video1.mp4" type="video/mp4">  ----> PROBLEM lies here

</video>

</html>

---->问题就在这里

通过http查看页面时,不能使用本地文件路径。如果可能的话,这将是一个大规模的安全违规行为。浏览器正在客户端驱动器上查找此文件,所以您需要向他提供该文件的WEB路径‪把它作为一个教程,告诉你如何修复
C:\Users\Toumash\Pictures\tutorial.png
或者将视频移到文档根目录(这样你就可以将html src指向它),或者创建另一个PHP文件来
readfile
你的视频。@Toumash…明白了