Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Json 如何使用节点red保存base64编码的图像_Json_Image_Base64_Http Post_Node Red - Fatal编程技术网

Json 如何使用节点red保存base64编码的图像

Json 如何使用节点red保存base64编码的图像,json,image,base64,http-post,node-red,Json,Image,Base64,Http Post,Node Red,我编写了一个Android应用程序,通过使用凌空库的HTTP POST请求发送一些文本(应该保存在文件中)和图像(应该保存为单独的文件) 图像将转换为字节数组。此字节数组使用Base64.encodeToString()转换为字符串。此字符串设置为发送到服务器的JSON对象中的属性 服务器端的界面是一个节点红色的服务器:接收数据并提取文件名和文本。到目前为止一切正常。但是在保存图像时(这是一个Base64编码的字符串),只将该字符串写入jpg文件 剩下要做的就是解码图像字符串并将其另存为图像。我

我编写了一个Android应用程序,通过使用凌空库的HTTP POST请求发送一些文本(应该保存在文件中)和图像(应该保存为单独的文件)

图像将转换为字节数组。此字节数组使用Base64.encodeToString()转换为字符串。此字符串设置为发送到服务器的JSON对象中的属性

服务器端的界面是一个节点红色的服务器:接收数据并提取文件名和文本。到目前为止一切正常。但是在保存图像时(这是一个Base64编码的字符串),只将该字符串写入jpg文件

剩下要做的就是解码图像字符串并将其另存为图像。我不知道怎么做。我尝试了这种方法,但节点red不知道Image()

我也不完全理解,为什么发送图像的最佳方式是将其解析为字节数组,并将该数组编码为Base64字符串。如果有人能解释这个想法或者给我链接一个教程,这可能会对我有所帮助


如果您需要我的应用程序代码/节点红色流帮助,请告诉我。

有一个base64节点红色节点(),它将base64编码的字符串转换为NodeJS二进制缓冲区


如果在将字符串发送到文件节点之前先运行字符串,则会得到格式正确的图像。

我解决了这个问题。对于所有其他正在寻找答案的人,我发布以下内容:

在他的作品中提到的哈迪勒很好,但前提是整根弦在一行

如果将
encodeToString()
函数与
Base64.DEFAULT
标志一起使用,如下所示:
String returnString=Base64.encodeToString(字节,Base64.DEFAULT)
您收到的是一个多行字符串。

如果您使用标志
Base64.NO_WRAP
,则它可以与节点一起正常工作。

我们无法帮助您解释为什么选择在发送图像之前对图像进行Base64编码。嗯。。。你说得对,但我发现大多数教程都是这样做的。所以我认为这样做是有原因的谢谢你的快速回答。我尝试了此节点,但仍然无法打开图像。我将图像字符串作为有效负载传递到此节点。产生的有效负载应该是jpg文件的内容。我理解正确吗?我试图打开文件,程序告诉我“解释JPEG图像文件时出错(不是JPEG文件:以0x4c 0x7a开头)”。如果我捕获的图像是jpg,我对它进行编码并将其发送到服务器,它应该仍然是jpg,不是吗?我在两张不同的图像中发现了这个错误。假设您在Android端编码的是格式正确的jpeg流,那么这应该可以满足您的需要。将图像编码为字符串后,我只是再次解码并在图像视图中显示它。编码似乎是正确的。我解决了这个问题。感谢您的帮助,但重要的是节点需要一个单行字符串作为输入!