从上面的图片中我有一个视频文件,而我正在尝试检索视频->
这些问题即将发生->
仅针对特定文件正在发生可能的问题......?
我使用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)
}
所有文件都在文件夹中正确上传,但我不知道为什么很少有视频出现
我认为该文件可能已损坏但是当我再次从服务器下载相同的文件时,当我在我的电脑中播放它时,它工作正常。!
帮助表示赞赏..
答案 0 :(得分:1)
如果您只是直接上传视频文件并且无法转换或检查它们,则可能会遇到安全问题。
同时,由于各种编解码器,无法保证所有上传的文件都会播放。我建议对上传的文件执行检查,将其验证为视频,然后进行转换。
可能发生这种情况的另一个原因,就像你提到的,在某些文件中,你不能正确地转义URL。
尝试在返回的网址上使用encodeURIComponent(path)
。
encodeURIComponent() - encodeURIComponent()函数通过将某些字符的每个实例替换为一,二,三来编码统一资源标识符(URI)组件,或四个表示字符的UTF-8编码的转义序列(对于由两个&#34;代理&#34;字符组成的字符,只有四个转义序列)。
此外,它可能是服务器端问题。在服务器端正确转义文件名也很重要。
文件上传和播放视频可能会出现许多问题。