javascript - 我应该在哪里将图像存储为 ArrayBuffer
问题描述
我正在制作一个 chrome 扩展,用户可以在其中将计算机中的图像设置为背景。到目前为止,我可以将图像作为 ArrayBuffer 存储在其中,chrome.storage.local
但最多只能存储 5MB。这限制了我的用户可以上传的照片。
在这种情况下,是否还有其他地方可以存储图像或者我可以从磁盘读取图像?
这是我从用户设备读取文件的方式
async handleFile() {
const options = {
types: [
{
description: "Image",
accept: {
"image/*": [".jpg"],
},
},
],
};
let [fileHandle] = await window.showOpenFilePicker(options);
const file = await fileHandle.getFile(); // once a user picks an image return the path of that image
// Lets let the user do the reader on the load
let reader = new FileReader();
reader.addEventListener(
"load",
function () {
chrome.storage.sync.set({ background: false }, () => {
console.log(reader.result);
chrome.storage.local.set({ image: reader.result }, () => {
chrome.tabs.query(
{ active: true, currentWindow: true },
(tabs) => {
chrome.tabs.reload(tabs[0].id);
}
);
});
});
},
false
);
console.log(file);
reader.readAsDataURL(file);
// if (file.size < 5000000) {
// this.error = "";
// } else {
// this.error = "File Size is too large";
// }
},
解决方案
推荐阅读
- gradle - 如何编译 HelloJGraphT 演示?
- autodesk-forge - 如何从 Autodesk forge 监听双击事件
- c# - 在使用 MVC/Razor 发布期间从文本中删除诸如 %、$ 之类的字符
- swift - 如何使 TableViewDataSourcePrefetching 与网络顺畅?
- php - Google Cloud SQL 和 Google App Engine 之间的连接 - 超时
- ionic3 - 如何在 ionic 中渲染 html5 和 css?
- android - Snackbar 在操作点击时不会被关闭
- hadoop-yarn - 为什么 YARN 上的 Flink HA 集群恢复的次数超过了最大尝试次数?
- maven - 如何将所有工件从一个工件存储库移动到另一个
- angular - 使用 async/await 订阅结果后的 window.reload()