我正在编写一个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页面上显示的视频播放器不播放任何视频。
谁能告诉我我做错了什么?
答案 0 :(得分:1)
您可以将实际的文件路径存储在数据库中并使用php进行请求。然后,您可以将文件复制到站点的临时文件夹,并将该文件路径传递回前端,然后在关闭文件后触发删除功能。所以例如我在我的应用程序中使用了以下代码,首先我将ajax请求发送到带有变量“filepath”的php文件:
copy(DOCUMENT_ROOT."/".$_REQUEST['filepath'].".pdf",SITE_ROOT.TEMP_STORAGE."/".$_REQUEST['filepath'].".pdf");
所以我在config.php文件中定义了一个DOCUMENT_ROOT,用于显示所有文件的实际基本位置。我还指定了SITE_ROOT和TEMP_STORAGE。 SITE_ROOT是站点的基本服务器文件路径,TEMP_STORAGE是存储文件以供查看的默认临时位置。
然后我执行以下操作:
$outcome = array("location" => SECURE_ROOT.TEMP_STORAGE."/".$_REQUEST['filepath'].".pdf", "actual_path" => SITE_ROOT.TEMP_STORAGE."/".$_REQUEST['filepath'].".pdf");
所以我传递了文件的服务器位置和实际的URL来访问文件。
然后从ajax成功函数中访问位置变量,完成后调用delete函数并将实际路径传递回php函数并使用以下代码:
if(!unlink($_REQUEST['filepath'])){
$response = "unable to delete file.";
}else{
$response = "file deleted successfully.";
}
不确定这是否是最佳方法,但它确实适用于我开发的商业应用。它隐藏了公众眼中的实际服务器文件路径。
看完自己的答案后,似乎很困惑,哈哈。如果您想进一步澄清,请告诉我。
答案 1 :(得分:1)
您在访问视频文件时遇到问题。这里最好的解决方案是将所有文件移动到单独的文件夹,如Web服务器(WAMP / LAMP)位置中的视频,并按如下方式指向这些文件。
test.rs:21:48: 21:52 error: cannot move out of borrowed content
test.rs:21 None => curr.right = Some(Box::new(*new))
^~~~
test.rs:26:47: 26:51 error: cannot move out of borrowed content
test.rs:26 None => curr.left = Some(Box::new(*new))
^~~~
test.rs:21:21: 21:54 error: cannot assign to immutable field `curr.right`
test.rs:21 None => curr.right = Some(Box::new(*new))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.rs:26:21: 26:53 error: cannot assign to immutable field `curr.left`
test.rs:26 None => curr.left = Some(Box::new(*new))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 4 previous errors