javascript - 替换数组中 1 个位置的选择图像
问题描述
$(document).on('click', '.newProductPic', function () {
$(".newProductPic").removeClass("selectImage");
$(this).addClass("selectImage");
var image = $(".selectImage")[0];
var fReader = new FileReader();
fReader.onloadend = (function (f) {
return function (e) {
var base64ImageString = this.result;
var imageName = f.name;
imagesListContent.push({ base64ImageString, imageName });
addThumbMainImage(base64ImageString, f.name);
currentMainImage = 'newProductPic' + i + '';
};
})(image);
fReader.readAsDataURL(image);
var temp = $(".newProductPic")[0];
imagesListContent[0] = imagesListContent[selectMainImageId];
imagesListContent[selectMainImageId] = temp;
});
我遇到了一个错误:未捕获的 TypeError:无法在“FileReader”上执行“readAsDataURL”:参数 1 不是“Blob”类型。我做错了什么,这个问题的解决方案是什么?
解决方案
您提供给 readAsDataURL 的参数应该是文件引用而不是 jquery 对象。
<input type="file" id="files">
document.getElementById('files').addEventListener('change', handleFileSelect, fals)
该函数将接收事件作为参数,您可以通过event.currentTarget.files
. 这是一个数组
另一种方法是从输入元素的文件数组中获取文件引用。
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL
推荐阅读
- typescript - 为什么在 nestjs 服务提供者中注入健全的客户端会导致“TypeError:client_1.default 不是函数”?
- python - Django:聚合,强制平均返回整数而不是小数
- html - 如何确定具有相同选择器的元素的 css 特异性?
- python-3.x - 将文件夹移动到自身:shutil,检查文件的路径是否与目标路径相同,如果是,则不执行任何操作
- java - 为什么我在 Java Spring 的存储库接口中的 SQL 中出现 SQL 错误:1064
- c - STM32L476 flash 页擦除没有效果
- r - R:如何检查不同列的增加/减少值
- reactjs - XCode 不会打开我的任何文件夹......我该如何解决这个问题
- react-native - 反应原生浮动按钮
- mysql - Mysql fetch rows limited be another table column value