【发布时间】:2019-11-23 14:46:06
【问题描述】:
PHP 新手在这里。我正在尝试制作一个简单的页面,您可以在其中上传 mp4 文件,并且该文件会自动显示在另一个页面上。但是,我在更改视频的 src 内容时遇到了困难。
这是我的upload.php:
<!DOCTYPE html>
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
Select video to upload:
<input type="file" name="file" id="file">
<br>
<input type="submit" value="submit" name="submit">
</form>
</body>
</html>
<?php
if (isset($_POST)) {
if (isset($_FILES['file'])) {
$file_name = $_FILES['file']['name'];
$file_tmp = $_FILES['file']['tmp_name'];
$file_type = $_FILES['file']['type'];
$file_ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if ($file_ext != "mp4") {
echo "Please select an mp4 file.";
} else {
move_uploaded_file($file_tmp, "./video.mp4");
header("Location: success.php");
}
}
}
?>
和我的index.php在同一目录下:
<html>
<body>
<video autoplay loop muted>
<source src="video.mp4" type="video/mp4">
</video>
</body>
</html>
如果我上传 mp4,它会在 index.php 上正确显示。但是,如果我然后上传不同的 mp4,它仍然显示第一个,尽管内容发生了变化(我知道这一点,因为如果我进入控制台并单击 video 标签中的 src,它是第二个我上传的视频。)
因此,如果用户在浏览器上打开了index.php,并使用upload.php 添加了一个新文件,是否可以自动更新index.php 上的内容 必须刷新页面?我没有在网上找到任何关于此的解决方案,也许我只是在搜索错误的问题。
感谢所有帮助,谢谢。
【问题讨论】:
-
您必须以某种方式通知客户某些事情发生了变化。查看服务器发送的事件和 EventSource API。
标签: php html ajax video browser-cache