javascript - Firebase:上传后加载预览时出错
问题描述
有人可以帮忙吗?我已经搜索了几个小时的文档,但找不到正确的解决方案。我正在尝试上传我在项目中名为 house.jpg 的硬编码图像。但是,当我上传它时,它没有正确上传。我指定它是一个图像,但它只显示“错误加载预览”。它也以 9 个字节存储,而它应该存储大约 50KB。
var storageRef = storage.ref();
var propertyRef = storageRef.child(mainImageUrl);
console.log("adding property image")
const myPromise = new Promise((resolve, reject) =>{
var metadata = {
contentType: 'image/jpeg',
cacheControl: 'public,max-age=300',
};
var image = "../../assets/icons/house.jpg"
console.log(image)
propertyRef.put(image, metadata).then((snapshot)=>{
console.log('Uploaded a file', snapshot);
snapshot.ref.getDownloadURL().then((downloadURL)=>{
console.log("url: ", downloadURL);
resolve(downloadURL);
})
}).catch((error)=>{
reject(error);
})
});
解决方案
您将字符串保存../../assets/icons/house.jpg
为文件
如果要从此位置保存文件,则必须先获取数据。
需要:
var storageRef = storage.ref();
var propertyRef = storageRef.child(mainImageUrl);
console.log("adding property image")
const myPromise = new Promise((resolve, reject) =>{
var metadata = {
contentType: 'image/jpeg',
cacheControl: 'public,max-age=300',
};
var image = require("../../assets/icons/house.jpg")
console.log(image)
propertyRef.put(image, metadata).then((snapshot)=>{
console.log('Uploaded a file', snapshot);
snapshot.ref.getDownloadURL().then((downloadURL)=>{
console.log("url: ", downloadURL);
resolve(downloadURL);
})
}).catch((error)=>{
reject(error);
})
});
推荐阅读
- django - MultipleObjectsReturned:get() 在 DetailView 上返回了多个对象
- c++ - 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 对我的构造函数不支持 default-int
- mysql - loopback4 更改模型数据类型
- python - 如何在 pytest 中保持单元测试和集成测试分开
- deployment - 使用 Kubernetes 运行深度学习模型
- reactjs - 如何在 React (Gatsby) 中使用 staticman?
- node.js - 如何使用带有express-validator的nodejs显示每个输入字段的错误?
- android - BluetoothGattServer 总是在 30 秒后断开连接
- java - 使用 BufferedImage 生成缩略图而不反转颜色并在 Java 中获得 alpha
- python - 为什么将两张图像转换为黑白会产生两种不同的结果?