Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新src内容时自动刷新页面_Php_Html_Ajax_Video_Browser Cache - Fatal编程技术网

Php 更新src内容时自动刷新页面

Php 更新src内容时自动刷新页面,php,html,ajax,video,browser-cache,Php,Html,Ajax,Video,Browser Cache,这里是PHP新手。我正在尝试制作一个简单的页面,您可以上传一个mp4文件,该文件会自动显示在另一个页面上。然而,我在更改视频的src内容时遇到了困难 这是我的upload.php: 选择要上载的视频: 和同一目录中的myindex.php: 如果我上传一个mp4,它会正确地显示在index.php上。但是,如果我随后上传了不同的mp4,它仍然会显示第一个mp4,尽管内容发生了变化(我知道这一点,因为如果我进入控制台并单击video标记中的src,这是我上传的第二个视频。) 因此,如果用

这里是PHP新手。我正在尝试制作一个简单的页面,您可以上传一个mp4文件,该文件会自动显示在另一个页面上。然而,我在更改视频的src内容时遇到了困难

这是我的
upload.php


选择要上载的视频:

和同一目录中的my
index.php


如果我上传一个mp4,它会正确地显示在
index.php
上。但是,如果我随后上传了不同的mp4,它仍然会显示第一个mp4,尽管内容发生了变化(我知道这一点,因为如果我进入控制台并单击
video
标记中的
src
,这是我上传的第二个视频。)

因此,如果用户在其浏览器上打开了
index.php
,并使用
upload.php
添加了一个新文件,是否可以在不刷新页面的情况下自动更新
index.php
上的内容?我在网上找不到任何解决办法,也许我只是在搜索错误的问题


非常感谢您的帮助。

我不知道您是如何实施的。您是离开index.php页面上传视频(即通过AJAX进行上传),还是转到upload.php页面,然后返回index.php页面并期望看到新视频?此外,视频名称是否始终为video.mp4,即使它是不同的视频文件。有很多方法可以解决这类问题,如果视频文件的名称是静态的,则可能会出现缓存问题

对于图像,一种处理方法是将某些内容作为查询字符串附加到文件名中,但这有一些问题,而且Apache服务器有一个Etag功能可能会有所帮助。对于查询字符串,类似于:

“type=“video/mp4”>,但问题是即使视频没有更改,也可能会强制重新加载视频。使用SessionID可能是一个选项,因为它在整个会话中不会更改。还有一个PHP filemtime()函数,该函数为文件提供修改时间。就缓存问题而言,如果有一个唯一的url,则更合适

还有一些其他的SO帖子可以解决你的问题(我想)

您可能需要仔细阅读以下内容:


我不确定您是如何实现的。您是否会离开index.php页面上传视频(即通过AJAX进行上传),或者转到upload.php页面,然后返回index.php页面,期望看到新的视频?此外,视频名称是否始终为video.mp4,即使它是不同的视频文件。有很多方法可以处理此类问题,如果视频文件的名称是静态的,则可能会出现缓存问题

对于图像,一种处理方法是将某些内容作为查询字符串附加到文件名,但这有一些问题,Apache服务器有一个Etag功能可能会有所帮助。对于查询字符串,类似于:

“type=“video/mp4”>,但问题是即使视频没有更改,也可能会强制重新加载视频。使用SessionID可能是一种选择,因为它在整个会话中不会改变。还有一个PHP filemtime()函数,用于为文件提供修改时间。就缓存问题而言,如果有一个唯一的url,那就更合适了

还有一些其他的SO帖子可以解决这个问题。你的问题(我想)

您可能需要仔细阅读以下内容:

在那里。 我在图像方面也经历过类似的情况。 我认为浏览器会保存缓存数据,以便播放第一个视频

在这种情况下,您可以按如下方式执行


在那里。
我在图像方面也经历过类似的情况。
我认为浏览器会保存缓存数据,以便播放第一个视频

在这种情况下,您可以按如下方式执行



你必须以某种方式通知客户某些事情发生了变化。查看服务器发送的事件和EventSourceAPI。您必须以某种方式通知客户端某些内容已更改。查看服务器发送的事件和EventSourceAPI。感谢您的响应,我将查看这些链接。关于您的问题“或者转到upload.php页面,然后返回index.php页面,期望看到新的视频”,是的,这就是我所期望的。您是否动态更改视频的名称,或者始终是video.mp4而您正在覆盖它?在我的第一个实现中,始终是video.mp4,但是我把它改成了马克所说的,我很感激你的回应,我会调查那些链接。关于您的问题“或者转到upload.php页面,然后返回index.php页面,期望看到新的视频”,是的,这就是我所期望的。您是否动态更改视频的名称,或者始终是video.mp4而您正在覆盖它?在我的第一个实现中,始终是video.mp4,但是我把它改成了Mark所做的,解决了缓存问题,非常感谢。现在我需要弄清楚,当在
上传
页面中提交新文件时,如何自动刷新
索引
页面。这确实解决了缓存问题,非常感谢。现在我需要弄清楚,当在
上传
页面中提交新文件时,如何自动刷新
索引
页面。