我想在浏览器上显示已收到编码为Base64的jpg图像。 1.因此,我将jpg图片上传到我的后端。 2.然后,我想在浏览器中显示该上传的图像。
在Safari上它可以正常工作,并且我进行了以下检查:
src="data:image/jpeg;base64,_9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH...
但是在其他所有浏览器上,由于其他base64标记在base64之间重复出现#10;
,因此我看不到相同的图像:
src="data:image/jpeg;base64,_9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQE...
因此,其他浏览器显然会在发生新行的地方插入#10;
。
我从Android Smartphones中获得优势,并通过以下方式编码为base64:
Base64.encodeToString(jpgStream.toByteArray(), Base64.URL_SAFE);
我该如何解决?该后端相关,浏览器甚至是Android客户端?
答案 0 :(得分:0)
我认为在服务器端将\n
编码为
,Safari再次将其删除,而不是其他浏览器将其添加。
此HTML在chrome中对我来说效果很好(将其保存在桌面上名为a.html的文件中并打开):
<html><body><img src="data:image/png;base64, iVBORw0KGgoAAAAN
SUhEUgAAAAUA
AAAFCAYAAACNbyblAA
AAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="></img></body></html>
我认为您可能需要在问题中添加更多代码,以显示如何检索数据,如何对base64进行数据处理,将其合并到要发送到浏览器的页面中等等
此外,在浏览器开发人员工具或Fiddler之类的Web调试代理中查看服务器的原始响应,以准确了解服务器正在发送的内容-使用Inspect Element解析后可能会向您显示数据/解释/渲染而不是原始