javascript - 未捕获的 TypeError:fs.readFileSync 不是浏览器控制台中的函数错误
问题描述
我正在尝试使用以下代码通过反应将图像上传到亚马逊 s3 存储桶。我在浏览器控制台中收到错误“Uncaught TypeError: fs.readFileSync is not a function”。有人可以帮忙吗?我正在从另一个组件调用此上传功能,无论如何页面正在加载,在选择文件后抛出上述错误。
import React, { Component } from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import logo from './logo.svg';
import './App.css';
import Amplify from 'aws-amplify';
import awsconfig from './aws-exports';
import {AmplifySignOut, withAuthenticator } from '@aws-amplify/ui-react'
import ReactS3 from 'react-s3';
const file = require('fs')
const AWS = require ("aws-sdk")
const key_ID = "**********" //IAM key id
const SECRET_KEY = "************************"
const Bucket_name = "mediabucket321";
const s3 = new AWS.S3({
accessKeyId: key_ID,
secretAccessKey: SECRET_KEY,
});
Amplify.configure(awsconfig)
class upload extends Component {
upload(e){
const filename=e.target.files[0].name;
console.log(filename);
console.log("before upload");
console.log(file);
const fileContent = file.readFileSync(filename);
const params = {
Bucket: Bucket_name,
Key: 'img1.jpg',
Body: fileContent,
ContentType: "jpg"
}
s3.upload(params,(err,data)=>{
if(err){
console.log(err)
}
else{
console.log("File uploaded successfully",data.Location);
}
})
}
render() {
return (
<div style={{ display: 'flex', justifyContent: 'center', padding: 30 }}>
<div><h2>Upload a movie here</h2>
<h2>Enter the file location and click upload</h2>
<input type="text" name ="upload"/> <br/>
<input type="file" onChange = {this.upload}/>
</div>
</div>
);
}
}
export default upload;
解决方案
fs库在浏览器中不可用,它是 nodejs 特定的。
推荐阅读
- youtube - 为用户提供与某些内容相关的 YouTube 视频
- azure - Azure 虚拟网络服务端点 - 哪些资源可以充当客户端?
- python - 在 Pandas 中,str 值随时间和客户维度发生变化
- c# - 在 .Net core windows 桌面服务中获取会话更改事件
- javascript - 如何在 ubuntu 服务器上运行的 Puppeteer 中使用自定义字体?
- javascript - 如何在反应中加载自定义脚本?
- c# - EF Core 添加迁移问题 - 如何修复不同步迁移?
- c# - net5.0-windows:警告 CA1416:“windows”支持“RegistryValueKind.DWord”
- python - 我怎样才能与 45 度斜坡发生碰撞?
- python - 使用 firebase_admin 或 google.cloud.firestore 在 python 中的 Firestore 客户端(作为用户)