事出原因
某些原因,需要在在服務之間傳輸文件,想到只有通過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服務器都可以。