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