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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30424121/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 16:41:00  来源:igfitidea点击:

Get blob image from file input using jQuery

jqueryhtmlfile

提问by Nega developer

I am having some problems to take image as blob using jQuery:

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

Here is my code:

这是我的代码:

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);
    };
}

And all the time im getting the same error: uncaught TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.

并且我一直收到相同的错误:未捕获的 TypeError:无法在“FileReader”上执行“readAsDataURL”:参数 1 的类型不是“Blob”。

How can I solve? I try some methods to read the data from file object with FileReader but nothing solves my problem.

我该如何解决?我尝试了一些方法来使用 FileReader 从文件对象读取数据,但没有解决我的问题。

Thx for ur help guys

谢谢你的帮助家伙

回答by T McKeown

This line looks wrong:

这一行看起来不对:

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

You need fileto be a single file not all the files.

您需要file是单个文件而不是所有文件。

Example:

例子:

var file    = document.querySelector('input[type=file]').files[0];

or jQuery way:

或 jQuery 方式:

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

回答by John M

you're trying to execute the reader on an array.

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

try

尝试

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);
    };
}