将文件存储在对象中

时间:2012-09-23 19:47:27

标签: java file upload

我有一个Java客户端/服务器桌面应用程序,客户端和服务器之间的通信基于套接字,客户端和服务器之间交换的消息是序列化对象(消息对象,包含请求和响应)。

现在我需要让客户端能够将文件从本地计算机上传到服务器,但是我无法通过缓冲区发送文件,因为缓冲区已经用于交换消息对象。

我应该打开另一个流来发送文件,还是有更好的方法来上传文件?

3 个答案:

答案 0 :(得分:1)

你真的只有两个选择:

  1. 打开另一个专用于文件上传的连接,并通过该连接发送。
  2. 制作一个消息对象,表示正在上传的文件的位,并通过这些消息对象以块的形式发送文件。
  3. 前者似乎更简单&对我来说更清洁,需要更少的开销和更简单的代码。

答案 1 :(得分:1)

I need to make the client able to upload a file from the local computer to the server

- 打开Solely Dedicated Connection到服务器以进行文件上传。

- 使用File Transfer Protocol来简化您的工作,而且使用Apache's common lib 文件上传和下载非常简单可靠。 ...

请参阅此链接:

http://commons.apache.org/net/

答案 2 :(得分:1)

您可以保留您的解决方案并将文件内容作为对象传递,例如作为字符串 - 如果内容包含麻烦的字符,则使用内容的Base64编码(或类似)