javascript - 上传 img 的 Firebase 存储不起作用 -> 索引 0 处的“put”中的参数无效:预期的 Blob 或文件
问题描述
我第一次尝试使用 Firebase 存储。我的目标是将 img 上传到存储。
控制台显示此错误:
“Firebase 存储:
put
索引 0 处的参数无效:预期的 Blob 或文件。”,serverResponse_:null,name_:“FirebaseError”}
export default function ImgUpload() {
const [img, setImg] = useState([]);
console.log('img', img);
const handleUpload = () => {
firebase
.storage()
.ref()
.child(`images/${img.name}`)
.put(img)
.then(function (snapshot) {
console.log('what');
});
};
return (
<div>
<Input onChange={setImg} type="file" value={img} />
<Button onClick={e => handleUpload(e)} type="submit">
Upload
</Button>
</div>
);
}
我也在文档中找到了这个:
var file = ... // use the Blob or File API
ref.put(file).then(function(snapshot) {
console.log('Uploaded a blob or file!'); });
即使这样,我也不知道如何设置它。
解决方案
通过快速检查文件输入标签上的 ReactJS 文档,您可以获得带有this.fileInput.current.files[0]
.
所以这意味着它对你来说看起来像这样:
let file = this.fileInput.current.files[0];
firebase
.storage()
.ref()
.child(`images/${file.name}`)
.put(file)
在 JSX 中使用这个:
<input type="file" ref={this.fileInput} />
推荐阅读
- docker - 如何连接到运行 asp.net core 的 EC2 实例
- c# - 使用 HtmlAgilityPack 在相邻列中按名称刮取员工总数
- javascript - 我正在尝试用javascript中一个字段的用户输入计算自动填充文本字段到另一个字段
- xml - 数据未保存在文件 xml 中
- selenium - 带有 pyvirtualdisplay 和 Xvfb 的 Selenium 脚本无法在 linux vm 上的 cron 上运行
- r - 如何在 R 中更改此函数以更改 x 中的数据框?
- html - 在 http post 中发送正斜杠“\”
- javascript - Js 音频音量滑块
- docker - 为什么我在尝试 npm install 时会收到 npm 错误 -38?
- javascript - 如何在二维数组中设置值?