【发布时间】:2019-06-11 15:59:53
【问题描述】:
我想在浏览器上显示已经收到编码为 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 智能手机上传并通过以下方式编码为 base64:
Base64.encodeToString(jpgStream.toByteArray(), Base64.URL_SAFE);
我该如何解决这个问题? 是后端相关还是浏览器甚至 Android 客户端?
【问题讨论】:
-
我很困惑这是您的服务器从浏览器接收数据(问题的第一行)还是向浏览器发送数据(问题的其余部分)的数据。你能为我解开这个困惑吗?
-
@CaiusJard 改述见上文
-
您确定没有其他透明进程在某处对 src 属性中的数据执行 URL 编码吗?
-
@CaiusJard 我不这么认为,我会再检查一次。但是如果是这样,在Safari浏览器上不会也被破坏了吗?
标签: android google-chrome browser safari base64