无法构造'Blob':提供的第一个参数是null或无效的Array对象。

时间:2015-02-24 17:50:49

标签: javascript jquery file-io

我今天开始使用filesaver.js.我创建了以下功能:

function saving(){
    var blob = new Blob(final_transformation, {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");
}

但是当我调用该函数时,我得到“无法构造'Blob':提供的第一个参数是null,或者是无效的Array对象。” 有什么想法吗?

2 个答案:

答案 0 :(得分:20)

由于您不会告诉我们final_transformation是什么,我们必须猜测没有上下文。试试这个:

function saving(){
    var blob = new Blob([final_transformation], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");
}

答案 1 :(得分:1)

我遇到了同样的错误。

请参阅https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob上的Blob构造函数文档:

var aBlob = new Blob( array[, options]);
  

arrayArrayArrayBufferArrayBufferViewBlob对象中的DOMString,或任何此类对象的混合,将会放在Blob内。

因此new Blob的第一个参数非常具体-它只能是包含几种特定类型的对象的数组。常规字符串对我不起作用,但这可行:

> new Blob( [ new TextEncoder().encode( 'some text' ) ], { type: 'text/plain' } )
< Blob {size: 9, type: "text/plain"}