如何解决Java Multipart 文件到 blob 然后返回到 Image 有大量随机字符
我从 jsp 接收图像,转换为字节,然后 blob 并将其保存在我的数据库中,然后在不同的页面上检索它,当我检索图像时,我得到以下字符串。
>'x*??{[?Y?>YE *?????_/???????~%?+y?`??uH????#??\t?????|B??k?-??Z4V?U7?F???m+(?? ? I??pq^?Q???????18?R???-???>0~?sXxCI?;[;t???9?fBX?Bp?A??^M?k? ??G?S?u???????r?U&‚w*??8????`??> Y?2?????1?j$??\??DR[??t0? pps?_Ex? ???_o?*?? xV)?6D8?$??!?9??~???N?`???}W?s?gNUf?Mn>?s?3?r?3M???X???Q????N!pr~?W????Mjq5??????2m???8????x??V?????????[???"??*,I?/@s?V?d?B?/?Vb?&R?n|?>??2????)?r??1??%7?Q??^f?R?C?????mvm??%6?K?p??;O?Z?&?????u?????\???R"ZOex???VkE???????_??????K?M@=??o?Z[?[hb?H?V????
<img src="data:image/jpeg;base64,${img}" width="100" height="100"></img>
我不太确定这里出了什么问题,这里是我把文件变成一个字节 [] 然后一个 blob 的地方。
byte[] byteData = file.getBytes();
Blob blobs = new SerialBlob(byteData);
然后我如何将其转换为 base64 字符串。
String base64DataString = new String(byteData,"UTF-8");
System.out.println(base64DataString);
model.addAttribute("img",base64DataString);
如果有人知道如何将此字符串转换为可用于复制图像的普通 base64 字符串,那将非常有帮助。 吉姆
解决方法
String base64DataString = Base64.getEncoder().encodeToString(byteData);
永远不应该将二进制数据转换为包含 Unicode 的字符串,主要是 UTF-16 字符,其中每个字节花费 2 个字节(一个字符),并且转换需要时间并且可能会出错。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。