2009-07-08 35 views
0

我正在寻找解决方案,将文件从客户端上传到通过Web服务连接的服务器。 客户端使用C#编写,使用java编写Web服务。 这些文件可能比较大< 100MB。将文件上传到webservice(java)

你会建议什么方法最好?

回答

2

Base64对文件进行编码并将其作为附件发送。如果您需要确保附件的内容不会在途中更改,请使用MTOM。否则,请使用DIME。

1

同意客户端和服务器上的编码,然后使用该编码序列化文件,将其包装在CDATA标记中,并将值分配给客户端上的SOAP请求中的文本节点。

读取服务器上CDATA标记之间的数据,使用约定的编码对其进行反序列化,然后根据需要使用字节流。

如果文件很大,对于编码来说涉及某种压缩可能是一个好主意,但如果客户端是.NET和服务器Java,则应该小心互操作问题。

+0

有在这种方法中可能的问题:如果你不使用MTOM或DIME那么整个文件必须保存在内存中从Java部分在Web服务容器内部,如果客户端太多会导致内存问题 – massimogentilini 2010-11-26 15:14:23

1

对于服务器端,你应该看看Commons File Upload

+3

公共文件上载旨在与HTML表单一起工作,并且将依赖于您在客户端和服务器中都可以访问HTTP请求,通常使用通用WS API的情况。 – 2009-07-08 16:13:20