Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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
Javascript 如何播放使用Ajax下载的媒体文件?_Javascript_Html_Ajax - Fatal编程技术网

Javascript 如何播放使用Ajax下载的媒体文件?

Javascript 如何播放使用Ajax下载的媒体文件?,javascript,html,ajax,Javascript,Html,Ajax,我希望能够下载媒体文件并使用Ajax播放它们。我的方法(如下)适用于图像,但由于某些原因,视频文件(AVI)无法播放 var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } x

我希望能够下载媒体文件并使用Ajax播放它们。我的方法(如下)适用于图像,但由于某些原因,视频文件(AVI)无法播放

var xmlhttp;
    if (window.XMLHttpRequest) { 
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
            if (type == 'Image') {
                document.getElementById("image_holder").src = "data:image/png;base64," + xmlhttp.responseText;
            } else {
                document.getElementById("video_holder").src = "data:video/avi;base64," + xmlhttp.responseText;
            }
        }
    };    
    xmlhttp.open("GET", server_url + '/get_file.php);
    xmlhttp.send(null);
HTML:


我会更改你的if-else语句,这样你就可以对视频类型执行一个else-if,然后在你的else中放一条消息告诉你它是否到达了那里。任何可能触发视频源并导致错误的东西都不会将视频源标记的src设置为文件的url,而足以异步下载它(而不是设置数据:video/avi;base64,+responseText)?@JonasGrumann-谢谢。但是,我将视频/图像文件存储在数据库中,并根据请求返回其内容。get_file.php做什么?从数据库中获取avi的base64编码内容并返回它。用代码更新了我的帖子。
<video id="outer_video_holder">
            <source id="video_holder"  src="" type="video/avi">
        </video>
    $sql = "SELECT * FROM file WHERE id=$file_id";

    $result = $conn->query($sql);

    header("Content-Type: video/avi");

    if ($row = $result->fetch_assoc()) {
        echo $row['content'];
    }