事出原因
某些原因,需要在在服務之間傳輸檔案,想到隻有通過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伺服器都可以。
你的每一個點贊,我都當做喜歡