HTML视频播放器的某些文件出现故障

时间:2017-04-17 11:32:41

标签: javascript jquery html video

Browser errors

从上面的图片中我有一个视频文件,而我正在尝试检索视频->这些问题即将发生->仅针对特定文件正在发生可能的问题......?

我使用jquery ajax响应附加视频数据:

$("#videoData").append('<video width="75%" class="center-block" 
                        controls autoplay style="max-width: 60em;">
                        <source style="max-width: 60em;" src="'+path+'" type="video/mp4">
                        '+response["videoName"]+'</video>');

路径中的视频位置将从开始。(http://website.com/uploads/file.mp4)

我的HTML就是这样:

<div id="videoData">     </div> 

我的php存储文件是这样的:

$videoPath      = '../uploads/course_videos/'.$coursename;
for ($i = 0; $i < count($_FILES['course_video']['name']); $i++) {
$videofilename      =   $_FILES["course_video"]["name"][$i];
$videofilename      =   mysqli_real_escape_string($conn,$videofilename);
$targetVideo = $videoPath ."/". $videofilename;
move_uploaded_file($_FILES["course_video"]["tmp_name"][$i], $targetVideo)
}

所有文件都在文件夹中正确上传,但我不知道为什么很少有视频出现

我认为该文件可能已损坏但是当我再次从服务器下载相同的文件时,当我在我的电脑中播放它时,它工作正常。!

帮助表示赞赏..

1 个答案:

答案 0 :(得分:1)

如果您只是直接上传视频文件并且无法转换或检查它们,则可能会遇到安全问题。

同时,由于各种编解码器,无法保证所有上传的文件都会播放。我建议对上传的文件执行检查,将其验证为视频,然后进行转换。

可能发生这种情况的另一个原因,就像你提到的,在某些文件中,你不能正确地转义URL。

尝试在返回的网址上使用encodeURIComponent(path)

  

encodeURIComponent() - encodeURIComponent()函数通过将某些字符的每个实例替换为一,二,三来编码统一资源标识符(URI)组件,或四个表示字符的UTF-8编码的转义序列(对于由两个&#34;代理&#34;字符组成的字符,只有四个转义序列)。

此外,它可能是服务器端问题。在服务器端正确转义文件名也很重要。

文件上传和播放视频可能会出现许多问题。