【发布时间】:2019-08-01 19:54:09
【问题描述】:
我的目标是通过 Python 中的 POST 请求发送一张图片,并将其显示在 Node Red 的仪表板中,但是一旦发送,我就卡在了读取图像的步骤中。
这是我用来发送文件的一段代码:
directory = os.path.join(DIRECTORY_IMAGES, id)
files = {'image': open(directory,'rb')}
requests.post('http://XXX.XXX.X.XX:1880/IMAGE', files = files)
在 Node-red 中,我使用的块如下:
消息已收到,但我无法从中取出图片。正如我在其他帖子中所读到的,msg.payload 设置为req.files[0].buffer,编码为Base64 并在模板中使用<img width="16" height="16" src="files:image;base64,{{msg.payload}}" /> 显示,但这不会显示图像。
[{"id":"797939a8.a91a58","type":"http response","z":"ddfa6621.2e7168","name":"","statusCode":"","headers":{},"x":1290,"y":2280,"wires":[]},{"id":"d5b145ce.a712f8","type":"ui_template","z":"ddfa6621.2e7168","group":"9beeae56.34305","name":"Display image","order":4,"width":"7","height":"6","format":"<img width=\"16\" height=\"16\" src=\"files:image;base64,{{msg.payload}}\" />\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1680,"y":2220,"wires":[[]]},{"id":"5e30e496.958b9c","type":"change","z":"ddfa6621.2e7168","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"req.files[0].buffer","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1300,"y":2220,"wires":[["2f260e60.d12642"]]},{"id":"2f260e60.d12642","type":"base64","z":"ddfa6621.2e7168","name":"Encode","x":1500,"y":2220,"wires":[["d5b145ce.a712f8"]]},{"id":"18c71628.986f4a","type":"http in","z":"ddfa6621.2e7168","name":"","url":"IMAGE","method":"post","upload":true,"swaggerDoc":"","x":1050,"y":2220,"wires":[["5e30e496.958b9c","797939a8.a91a58"]]},{"id":"9beeae56.34305","type":"ui_group","z":"","name":"Última pierna procesada","tab":"223d38a0.9cbaa8","order":8,"disp":true,"width":"7","collapse":false},{"id":"223d38a0.9cbaa8","type":"ui_tab","z":"","name":"CALIDAD PULPAS CINTA 0","icon":"dashboard","disabled":false,"hidden":false}]
我错过了什么?
【问题讨论】:
-
看看这个LINK,看看是否可行
-
我猜问题出在 Node-red 部分,我正在发送数据并收到它,但没有采取进一步行动
-
您是否已在流程中附加了调试节点,以确保您得到预期的结果。还要检查仪表板的浏览器控制台。