2016-06-13 36 views
0

我使用netty 4來進行多部分文件上傳,但不知道如何發送jsaon正文以及上傳文件(.jpg/.pdf/.etc。)使用json負載進行文件上傳netty

請幫我使用netty 4和Java來實現這個功能。 我們非常感謝您的幫助。

+0

UID uniqueFileId = new UID(); FileUpload fileUpload =(FileUpload)數據; String fileName = fileUpload.getFilename(); String filePath = fileUpload.getFilename(); String name = fileUpload.getFilename();嘗試(FileOutputStream out = new FileOutputStream(fileUploadPath + fileName)){out.write(fileUpload.get()); –

回答

0

問題是JSON不支持文件上傳,所以您首先需要決定如何編碼文件&元數據。

你基本上有四種選擇:

  1. 使用形式編碼發送您的文件,而不是JSON的。這有更好的文件上傳支持。

  2. Base64對json中的文件進行編碼。這將增加約33%的文件大小。

  3. 第一發送文件中的一個的multipart/form-data的POST和使用返回值,以指定一個id與JSON數據發送是不同的請求

  4. 第一發送JSON數據並返回一個url將文件上傳到。

我建議不要使用選項2,因爲它也需要在內存中操作文件。如果文件很大,使用multipart/form-data將讓netty將文件保存到文件系統中,因此您不必將其存儲在內存中。

+0

感謝選項3工作正常。謝謝你的幫助! –

+0

那麼你能接受答案嗎?謝謝。 –