Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用从flask restful API接收的ReactJS呈现图像_Javascript_Reactjs_Flask_Flask Restful - Fatal编程技术网

Javascript 使用从flask restful API接收的ReactJS呈现图像

Javascript 使用从flask restful API接收的ReactJS呈现图像,javascript,reactjs,flask,flask-restful,Javascript,Reactjs,Flask,Flask Restful,我正在使用flask restful发送图像,但无法使用ReactJS进行渲染。我尝试使用btoa和blob来解决这个问题,但没有结果。这是我写的代码 restful代码: class UploadImage(Resource): UPLOAD_FOLDER = 'img' parser = reqparse.RequestParser() parser.add_argument('file', type=werkzeug.datastructure

我正在使用flask restful发送图像,但无法使用ReactJS进行渲染。我尝试使用btoa和blob来解决这个问题,但没有结果。这是我写的代码

restful代码:

class UploadImage(Resource):
    UPLOAD_FOLDER = 'img'
    parser = reqparse.RequestParser()
    parser.add_argument('file', 
          type=werkzeug.datastructures.FileStorage,
    location='files',
    required=True, help='Must provide username')

def post(self):
    data = self.parser.parse_args()
    if data['file'] == "":
        return {
            'data':'',
            'message': 'No File Found',
            'status': 'Error'
        }
    photo = data['file']

    if photo:
        filename = 'input.png'
        path = os.path.join(self.UPLOAD_FOLDER,filename)
        photo.save(path)
    # with open(path, "rb") as f:
    #     encoded_image = f.read()
    #     print(type(encoded_image))
        return send_file(path, mimetype='image/png')
反应代码:

onButtonClick = () => {
    const fd = new FormData();
    fd.append('file', this.state.image, this.state.image.name)

    axios.post('http://localhost:5000/image', fd).then(res => {
      this.setState({
        features: res.data
      })

    })
  }
render() {
    const { features } = this.state
    return (
      <div className="App">
        <input
        type='file'
        onChange={this.onInputChange}
        />
        <button onClick={this.onButtonClick}>Upload</button>
        <br />
        {features && <img src={features} alt='some text'/>}
      </div>
    );
  }
onbutton单击=()=>{
const fd=new FormData();
fd.append('file',this.state.image,this.state.image.name)
轴心柱http://localhost:5000/image,fd)。然后(res=>{
这是我的国家({
特点:res.data
})
})
}
render(){
const{features}=this.state
返回(
上传

{功能&&} ); }

有人能帮我解决这个问题吗?谢谢

你能
console.log(res.data)
吗?当然可以,检查链接你是否尝试过
res.blob()
?是的下面出现的问题:未处理的拒绝(TypeError):res.blob不是一个函数如果你更改服务器
post
函数以返回路径而不是图像怎么办?然后在组件中,只需给出
的路径即可。