使用jQuery从文件输入获取blob图像

使用jQuery从文件输入获取blob图像,jquery,html,file,Jquery,Html,File,我在使用jQuery将图像作为blob时遇到一些问题: 这是我的密码: var file = $("#imgGaleria3")[0].files; if (file) { var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function(e) { // browser completed reading file - display it

我在使用jQuery将图像作为blob时遇到一些问题:

这是我的密码:

var file = $("#imgGaleria3")[0].files;

if (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function(e) {
        // browser completed reading file - display it
        alert(e.target.result);
    };
}
一直以来,我都会遇到同样的错误: 未捕获的TypeError:未能对“FileReader”执行“readAsDataURL”:参数1不是“Blob”类型

我怎样才能解决这个问题?我尝试了一些方法,用FileReader从文件对象读取数据,但没有任何方法解决我的问题

Thx for ur help guys

这句话看起来不对:

var file = $("#imgGaleria3")[0].files;
您需要
文件
成为单个文件,而不是所有文件

例如:

var file    = document.querySelector('input[type=file]').files[0];
或jQuery方式:

var file = $("#imgGaleria3")[0].files[0];

您正试图在数组上执行读取器

试一试


您应该放置
reader.readAsDataURL(文件)读取器后的code>。onload
。和
$(“#imgGaleria3”)[0]。文件
是一个文件数组。你应该使用
$(“#imgGaleria3”)[0]。文件[0]
我不明白为什么要放:reader.readAsDataURL(文件);在reader.onload之后,但是你有文件数组的原因。。thx也很重要,因为它可能会在附加加载函数之前完成文件读取。我如何存储该值?我需要存储三个图像和一些数据,但有一些问题,因为这个函数是异步的。你应该在每个onload函数的末尾放一个相同的函数,这个函数做两件事,首先它确保所有3个都被加载,否则它会停止。如果加载了所有3个图像,它将继续执行。谢谢,我使用Jquery fileinput插件进行了测试,它可以正常工作
var file = $("#imgGaleria3")[0].files[0];

if (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function(e) {
        // browser completed reading file - display it
        alert(e.target.result);
    };
}