我有一个函数可以确定gif是动画的还是非动画的。一切正常,直到我将这些gif上传到服务器并加载它,blob url是一个空字符串。我如何为此生成blob网址?
由于blob url为空字符串,我得到的参数1不是' blob'
以下函数确定gif是否已设置动画。
$scope.isNotAnimatedGIF = function(file) {
var reader = new FileReader();
return new Promise(function(resolve, reject) {
reader.onload = function (e) {
var gifInfo = gify.getInfo(reader.result);
if (gifInfo.images.length <= 1) {
file.animatedGIF = false;
resolve(true);
} else {
file.animatedGIF = true;
resolve(false);
}
}
reader.readAsArrayBuffer(file);
});
}
我正在使用Angular 1.4.10 谢谢!
答案 0 :(得分:0)
试试这个reader.readAsDataURL(Blob|File)
。
您可以从here
中找到更多内容答案 1 :(得分:0)
您可以使用URL.createObjectURL()
创建Blob
网址。
URL.createObjectURL()静态方法创建一个
DOMString
,其中包含表示参数中指定对象的URL。 URL生存期与创建它的窗口中的document
相关联。新对象URL表示指定的File
对象或Blob
对象。
<强>样本强>
function createbloburl(file, type) {
var blob = new Blob([file], {
type: type || 'application/*'
});
file = window.URL.createObjectURL(blob);
return file;
}
document.querySelector('#file').addEventListener('change', function(e) {
var file = e.currentTarget.files[0];
if (file) {
file = createbloburl(file, file.type);
document.querySelector('iframe').src = file;
//console.log(file)
}
})
&#13;
<input id="file" type="file">
<iframe src=""></iframe>
&#13;