在我当前的程序中,用户在react中选择一个文件,该文件被发送到flask
return axios
.post(`http://localhost:5000/time`, data, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then(res => {
this.onReturnProcessed(res);
return res
});
}
并从flask中接收数据
onReturnProcessed = res =>{
console.log((res.data))
this.setState({img:res.data})
this.setState({ImgReturned:true})
}
Flask 后端获取这些文件,并将它们变成一个 numpy 数组,然后是一个 PIL Image 对象。然后将 Image 对象保存到 Flask 文件夹中
img = Image.fromarray((np.uint8(cm(img)*255)))
img.save("./thenewimg.png")
Flask 然后将文件发送到 React 前端
return send_file('./thenewimg.png',mimetype = 'image/png',as_attatchment=True)
问题是当React渲染flask发送的文件时
render(){
<div>
<img src = {this.state.img}/>
</div>
}
它无法解释文件,除了角落里的文件图标外,什么也不显示。当flask发送的文件被记录时,它会输出很多字符,如 }> { o n _ | t Jm~ \Ӳ . 我不确定如何更改 python 后端上的文件,以便 react 可以解释它并显示它。否则,我不确定如何更改前端以显示用 python 制作的图像。
这有效
@app.route('/img/<filename>',methods = ['GET'])
def give(filename):
filen = './UPLOADS/'+filename+'.png'
return send_file(filen)