Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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_Javascript_Blob - Fatal编程技术网

如何实例化新的文件对象javascript

如何实例化新的文件对象javascript,javascript,blob,Javascript,Blob,在javascript中实例化新文件对象时遇到问题 以下是我想做的事情的大致要点。有一个客户端代码需要一个“文件”类型的对象。我需要访问服务器上的文件(game.smc),将其下载到本地计算机并将其提供给客户端代码 我做了一些研究,发现创建一个新的blob对象是第一步。但是在下面的代码中,blob对象仍然为null,并且永远不会填充。xhr.open中的路径是否需要包含整个url?也许我遗漏了一个完整的概念,不确定 var blob = null; var xhr = new XMLHttpRe

在javascript中实例化新文件对象时遇到问题

以下是我想做的事情的大致要点。有一个客户端代码需要一个“文件”类型的对象。我需要访问服务器上的文件(game.smc),将其下载到本地计算机并将其提供给客户端代码

我做了一些研究,发现创建一个新的blob对象是第一步。但是在下面的代码中,blob对象仍然为null,并且永远不会填充。xhr.open中的路径是否需要包含整个url?也许我遗漏了一个完整的概念,不确定

var blob = null;
var xhr = new XMLHttpRequest(); 
xhr.open("GET", "/Roms/game.smc"); 
xhr.responseType = "blob";
xhr.onload = function() 
{
    blob = xhr.response;
}
xhr.send();
一旦我可以填充blob对象,我就可以将其转换为文件对象

    function blobToFile(theBlob, fileName) {
        theBlob.lastModifiedDate = new Date();
        theBlob.name = fileName;
        return theBlob;
    }

这就是我最后做的。演示如何获取blob对象以及如何将其转换为文件类型

function autoLoadGame(fileName) {
    var gameLocation = '/Content/Roms/Snes/' + fileName;
    var blob = null;
    var xhr = new XMLHttpRequest();
    xhr.open("GET", gameLocation, true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState == XMLHttpRequest.DONE) {
            var blob = xhr.response;
            var file = new File([blob], fileName, { type: '', lastModified: Date.now() });
            snes_readfile(file);
        }
    }
    xhr.responseType = "blob";
    xhr.send();
}