Spring之byte[]传输

Posted lifacheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring之byte[]传输相关的知识,希望对你有一定的参考价值。

事出原因

  某些原因,需要在在服务之间传输文件,想到只有通过Byte数组,或者是Stream传递,遂定下两方法,一个byte,一个inpustream,老样子,upload(@RequestParam("id")Integer id, (@RequestParam("filename")String filename,(@RequestParam("data") byte[] data),upload(@RequestParam("id")Integer id, (@RequestParam("filename")String filename,(@RequestParam("data") InputStream data),完事,美滋滋测试。

测试问题

  在测试的时候,发现spring的传递的时候,无法获取到byte数组,为空,没有data字段。在传递inputStream时,无法获取流,传递的竟然时RequestWrapper,debug发现body为空,没有数据。思前想后没找到问题原因。

解决方法

  经过多方查照,发现在传递byte数组时,可以使用@RequestBody,发现竟然可以获取到字节,美滋滋。 同样的方法用在InputStream时竟然发现不行。暂时还没有找到原因。

建议

  建议大家在传递时,可以使用@RequestBody + 字节的方式传输。 若文件过大,则可以使用文件服务器,FastDFS/FTP服务器都可以。

 

以上是关于Spring之byte[]传输的主要内容,如果未能解决你的问题,请参考以下文章

spring security之web应用安全

spring+ehcache实战--性能优化之道

从 Spring @RestController 收到的 AngularJS 显示 PDF (byte[])

创建一个 CSV 并返回为 byte[] 以在 Spring Controller 中下载

ActiveMQ之spring集成消息转换器MessageConverter

在 Spring Security 中,UserDetails 将密码存储为字符串,但我将其存储为 byte[]