javascript - 如何将本地文件从 Flask 发送到 Reactjs
问题描述
我将 React JS 作为前端,Flask 作为应用程序的后端。这个想法是用户上传图像进行反应,然后转移到 Flask 中的处理,然后 Flask 将处理后的图像返回给 React 进行显示。
为了将文件从 Flask 发送到 React,我将图像保存在本地文件夹中。所以顺序看起来像这样:
--node_modules,public,src // React files
--api //Flask files
-upload_image
-app.py
-...
所以在 Flask 中,我会将图像的 url 从本地服务器发送到 React,如下所示:
@app.route('/get-cut-image',methods=["GET"])
def get_cut_img():
if path_is_valid:
return "http://127.0.0.1:5000/api/upload_image/img.png"
else:
return "No valid path"
在 React 中,我使用 axios 调用服务器:
export default class Body extends Component {
constructor(props) {
super(props);
this.state = {
images: "",
result: false,
upload: true,
};
this.getDatas = this.getDatas.bind(this);
}
getDatas() {
try {
const dataImage = axios.get(
"http://127.0.0.1:5000/get-cut-image"
);
this.setState({
images: dataImage.data,
});
} catch (error) {
console.log(error);
}
this.setState({result: true, upload: false});
}
render() {
return (
<img src={this.state.images}></img>
);
}
但是,服务器将正确的 url 发送到图像文件夹,但是,我无法在客户端中获取 url。有什么帮助吗?
编辑:所以我发现 localhost:3000/ 是 react 的公共文件夹。所以我的目录看起来像这样:
--node_modules,public,src // React files
--api //Flask files
-app.py
我有另一个处理图像的功能,并将图像保存到public
文件夹
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
img_BGRA = <some_processing> #return PIL image
img_BGRA.save(<home/user/.../public/filename.png>)
当我尝试这样做时,在我的反应页面中崩溃并再次重新启动。
解决方案
推荐阅读
- javascript - Google Drive API NodeJS 示例中的回调处理
- asynchronous - 如何在 Erlang 中进行并行调用并等待所有结果?
- mongodb - 在 MongoDB Compass 中查询二进制字段
- scheme - 将“-0”转换为“-0.0”的球拍/方案
- firebase - Nuxt - result.forEach 不是函数?
- java - 什么是静态上下文变量
- oauth - Basecamp 3 API 的令牌 URL 问题
- canvas - 使用 p5.js 仅保存画布的某个区域
- php - 将文本字段中的条目放入 mysql 数据库
- xcode - 无法保存文件“File.scn”